0

如果我想在页面上显示所有资源,我可能会这样做:

Resource.find({}).exec(function (err, resources) {                          
    res.render("view", {                                                   
        resources: resources

但是,如果我想在页面上同时显示所有资源所有项目怎么办?我可以:

Resource.find({}).exec(function (err, resources) {
    Projects.find({}).exec(function (err, projects) {
        res.render("view", {
            resources: resources,
            projects: projects

不过,我认为必须更好/更正确的方法来做到这一点。

4

1 回答 1

2
var async = require('async');
var resourcesQuery = Resource.find({});
var projectsQuery = Projects.find({});
var resources = {
  resources: resourcesQuery.exec.bind(resourcesQuery),
  projects: projectsQuery.exec.bind(projectsQuery)
};
async.parallel(resources, function (error, results) {
  if (error) {
    res.status(500).send(error);
    return;
  }
  res.render("view", results);
});

这将使查询并行而不是串行,这可能会更快。

于 2013-08-06T18:29:48.580 回答