Получение нулевых данных при использовании обещания в экспрессе
Поэтому у меня есть проект, в котором я получаю доступ к таблице БД по идентификатору или имени.
Маршрут моей категории:
router.get('/name/:name', function(req, res) {
Category.fetchName(res, req.params.name);
console.log(res.name);
});
Моя категория модели:
static fetchName(res, categoryName) {
categories.find({
name: categoryName
})
.then((doc) => {
res.send(doc);
console.log(doc);
});
}
Когда я делаю console.log(doc)
это распечатывает массив
[ { _id: 57f7d8382604126103f0113b, name: 'stuff' } ]
Но когда я получаю к нему доступ в моем маршруте, он говорит undefined
, Что мне не хватает? Почему я не могу получить доступ к данным, полученным из БД в моем маршруте?
Заранее спасибо!
1 ответ
Вы не получите res.name
так как вы никуда не добавляете name property
в res
объект.
router.get('/name/:name', function(req, res) {
Category.fetchName(res, req.params.name, function(err, result) {
if (!err) {
console.log(result);
res.send(result);
}
});
});
static fetchName(res, categoryName,callback) {
categories.find({
name: categoryName
})
.then((doc) => {
callback(null,doc);
console.log(doc);
});
}