TypeError: db.close не является функцией

У меня ниже приложение 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.close(). Он изменился в API некоторое время назад и одновременно с client.db().
Neil Lunn 29.05.2018 11:20

Да, Ниль прав. Вы должны использовать client, возвращенный из MongoClient.connect, а не db.

skovmand 29.05.2018 13:52

Спасибо, парни. это сработало.

runnerpaul 30.05.2018 08:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
13
3
7 119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме