0

我正在使用 linnovate MEAN 样板来构建应用程序:https ://github.com/linnovate/mean

使用 MongoDB,我了解如何查询数据库上的集合并通过命令行获取结果,例如:

db.articles.find({ 'title' : 'hello world'})

在 MEAN 应用程序中,我注意到此类查询的区域位于app/controllers/articles.js文件中:

/**
* List of Articles
*/
exports.all = function(req, res) {
    Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
        if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(articles);
        }
    });
};

如果我想添加一种返回具有特定查询的另一个列表的方法,我将如何处理?这是我正在处理的代码:

exports.all = function(req, res) {
    Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
        if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(articles);
        Article.find({ 'category' : 'hello world').sort('-created').populate('user', 'name username').exec(function(err, morearticles) {
            if (err) {
                res.render('error', {
                    status: 500
                });
            } else {
                res.jsonp(morearticles);
            }
        });
        }
    });
};
4

1 回答 1

0

由于其异步性质,您必须将第二个查询放在第一个查询中else-statement

请参阅此问题以获取更多信息:

将多个 DB/mongoose 查询的结果呈现到 express.js 中的视图

Mongoose 中的两个数据库查询与 Express

于 2013-11-06T08:24:07.460 回答