【发布时间】:2020-03-03 10:34:51
【问题描述】:
我最近一直在重写我非常简单的服务器。我一直在尝试引入承诺,但由于某种原因,即使我的 mongoDB 数据库中有数据(在本例中为类别列表),当我调用我编写的以下方法时,它也会返回一个空的 json 对象 {}。我尝试了多种方法。在此之前这是一个非常简单的方法,效果很好,我正在尝试更新它以允许更复杂的请求。
有人知道为什么我可能会返回一个空对象吗?它在邮递员中返回 200 OK,所以我不相信有任何错误。
这是我的控制器类:
'use strict';
var mongoose = require('mongoose'),
Category = mongoose.model('Categories');
module.exports = function() {
var mod = {
listAllCategories() {
return new Promise(function(resolve, reject) {
Category.find({}, function(err, category) {
if (err) {
return reject(err)
} else {
return resolve(category)
}
});
}).then(([category]) => {
if(category)
{
return category
}
else
{
return { success: false }
}
});
}
}
return mod;
};
这是我在 Routes 类中调用此方法的方式:
app.get('/api/gameCategories', (req, res) => {
res.json(gameCategoryList.listAllCategories())
})
提前谢谢你。
【问题讨论】:
标签: node.js json mongodb server promise