У меня ниже приложение Node.js, которое использует MongoDb:
var MongoClient = require('mongodb').MongoClient;
var demoPerson = { name:'John', lastName:'Smyth' };
var findKey = { name: 'John' };
MongoClient.connect('mongodb://127.0.0.1:27017/demo', { useNewUrlParser: true }, function(err, client) {
const db = client.db('demo');
if (err) throw err;
console.info('Successfully connected');
//console.info(db);
var collection = db.collection('people');
collection.insert(demoPerson, function(err, docs) {
console.info('Inserted', docs[0]);
console.info('ID:', demoPerson._id);
collection.find(findKey).toArray(function(err, results) {
console.info('Found results:', results);
collection.remove(findKey, function(err, results) {
console.info('Deleted person');
db.close();
});
});
});
});
Когда я запускаю его, я получаю эту ошибку:
TypeError: db.close is not a function
Я не могу понять, почему это не работает. Кто-нибудь может помочь?
Да, Ниль прав. Вы должны использовать client, возвращенный из MongoClient.connect, а не db.
Спасибо, парни. это сработало.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как прокомментировал @Neil Lunn, client.close() следует использовать вместо db.close().
client.close(). Он изменился в API некоторое время назад и одновременно сclient.db().