我使用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);
}
});
}
});
};
答案 0 :(得分:0)
由于其异步性质,您必须将第二个查询放在第一个查询的else-statement
内。
请参阅此问题以获取更多信息:
rendering results of multiple DB/mongoose queries to a view in express.js