MongoDB将循环结构转换为JSON错误

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

我试图在节点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);
    }
};

这将返回一个错误,读取将循环结构转换为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);