@Evelate

Как исправить ошибку в nodejs работая с mongodb?

const mongo = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017';

mongo.connect(url, { useNewUrlParser: true }, (err, client) => {
  if (err) {
    console.log('Connection error: ', err)
    throw err
  }

  console.log('Connected')

  const db = client.db('pageLinks');
  const allLinks = db.collection('allLinks');

allLinks.find({subcategory: 'subcategory2'}).toArray(function(err, results){     
    console.log(results);
  });

  client.close();
})


Добрый вечер)
Помогите разобраться. Изучаю работу node с бд. При данном коде вылетает ошибка, но всё работает, хотя думаю не надолго
spoiler
(node:8112) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)


Если изменить строчку на
mongo.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {...})

то ошибка исчезает в консоли, но результат кода
allLinks.find({subcategory: 'subcategory2'}).toArray(function(err, results){     
    console.log(results);
  });

будет undefined - почему? И как это исправить?
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Evelate Автор вопроса
Вроде бы исправилась ошибка с undefined. client.close() , быстрее срабатывал, чем завершался allLinks.find().
В итоге изменил строчку вот так:
allLinks.find({subcategory: 'subcategory2'}).toArray(function(err, results){     
    console.log(results);
    client.close();
  });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы