MongoDB将循环结构转换为JSON错误
我试图在节点API中使用Mongoose查询用户集合 处理程序如下所示:MongoDB将循环结构转换为JSON错误,mongodb,mongoose,Mongodb,Mongoose,我试图在节点API中使用Mongoose查询用户集合 处理程序如下所示: exports.getUsers = async function(req, res, next) { try { let users = db.User.find(); return res.status(200).json(users); } catch(e) { return next(e); } }; 这将返回一个错误,读取将循环结构转换为J
exports.getUsers = async function(req, res, next) {
try {
let users = db.User.find();
return res.status(200).json(users);
} catch(e) {
return next(e);
}
};
这将返回一个错误,读取将循环结构转换为JSON的
。当我对db.User.find()的结果执行console.log()操作时,我得到一个查询对象。其他的我都查过了。我所有的其他路线都正常工作。好吧……我知道了。我将发布我发现的答案,以防其他人试图弄明白这一点。事实证明,通过更仔细地阅读文档,必须执行返回的查询对象。有两种方法可以执行它——使用回调函数或返回承诺(但不是两者都返回)。我觉得很有帮助。我的最后一个处理者看起来像这样
exports.getUsers = async function(req, res, next) {
try {
db.User.find()
.then(users => {
return res.status(200).json(users);
});
} catch(e) {
return next(e);
}
};
下次我想我会在问之前再找几分钟
编辑以添加:
找到了第二个解决方案。由于使用了异步函数,我还能够在try块中使用以下内容
let users = await db.User.find();
return res.status(200).json(users);