我所能找到的所有用于呈现mongoose 搜索结果的页面的方法都是这样做的:

users.find({}, function(err, docs){
    res.render('profile/profile', {
        users:     docs
    });
});

我如何返回查询结果,更像这样?

var a_users = users.find({}); //non-working example

这样我就可以在页面上发布多个结果了?

比如:

/* non working example */
var a_users    = users.find({});
var a_articles = articles.find({});

res.render('profile/profile', {
      users:    a_users
    , articles: a_articles
});

这能做到吗?

推荐答案

你试图强迫一个同步的范例.就是不管用. node .js在很大程度上是单线程的——当io完成时,就会产生执行上下文.通过回调来管理信令.这意味着你要么有嵌套的回调函数,命名函数,要么有一个流控制库,让事情看起来更美好.

https://github.com/caolan/async#parallel

async.parallel([
   function(cb){
      users.find({}, cb);
   },
   function(cb){
      articles.find({}, cb);
   }
], function(results){
   // results contains both users and articles
});

Node.js相关问答推荐

需要关于基于角色授权的设计建议

从目录中获取所有文件,而不是NodeJS中的单个文件

购物车是空的状态|本地存储不更新产品数量|Redux|

如何将我的Redis客户端配置为在禁用群集模式的情况下使用读取副本?

使用参考中断Mongoose模型-Node.js

Inno Setup如何在现有文本文件中追加新内容

我的 MERN 网站一直告诉我我的一个函数不是一个函数

Node.js 连接在查询完成之前终止

为什么我的 Node.js 应用程序在登录时无法正确验证密码(使用 Passport-local 和 bcryptjs)?

在构建完成后,将AddedFiles文件夹的内容复制到dist文件夹

Amplify 部署的应用程序出现TypeError: handler is not a function错误,但它在本地运行

firebase/messaging 不提供名为 getToken 的导出

对 google api v3 的 Axios 请求返回加密(?)数据

为什么我的 npm 脚本中的 glob 不起作用?

MongoDB Atlas中的聚合触发器不起作用

在 `DataFrame` 上使用用户定义的可链接函数抽象出 Polars 表达式

yarn.lock 和 npm 的 package-lock 有什么区别?

我们如何或可以通过 npm 和 Meteor 使用 node 模块?

如何以编程方式检测nodejs中的调试模式?

Express.js中的bodyParser.urlencoded({extended: true }))和bodyParser.json()是什么意思?