Использование обещаний в Mongoose - PullRequest
0 голосов
/ 24 января 2019

Я новичок в методе Promise, который используется для одновременного получения нескольких записей базы данных, и я хочу переписать свой существующий код, чтобы использовать обещания

У меня есть этот фрагмент кода в Express:

getController.getData = function(req,res, collection, pagerender) {
  var id = req.params.id;
  collection.find({}, function(err, docs){
    if(err) res.json(err);
    else res.render(pagerender, {data:docs, ADusername: req.session.user_id, id: req.params.id});
    console.log(docs);
  });
};

Теперь я хочу использовать обещания здесь, чтобы я мог делать больше запросов к базе данных.Кто-нибудь знает, как мне это сделать?

1 Ответ

0 голосов
/ 24 января 2019

Сначала проверьте, вернул ли collection.find({}) обещание.Если это так, то вы можете назвать свой код следующим образом:

collection.find({}).
    then(function(docs){
        res.render(pagerender, {data:docs, ADusername: req.session.user_id, id: req.params.id});
    })
    .catch( function(err) {
        res.json(err);
    })

Если вы хотите больше вызовов здесь, просто создайте новый вызов БД и добавьте еще один блок .then.

Я предлагаю вамПрочтите документацию по обещаниям, просто чтобы получить общее представление о них (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then).. Вы также увидите, как вы можете справиться как с успехом, так и с отказом в одной и той же функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...