node.js - Mongoose 和 async.parallel

标签 node.js mongodb mongoose node-async

我想要获得如下所示的对象,以便将它们传递到我的 Dust.js 模板。

{ officers:
   [ { _id: '543dcbcf846c139cc042c813', name: 'Alpha' },
     { _id: '543dcc25846c139cc042c814', name: 'Beta' },
     { _id: '543dcd91846c139cc042c815', name: 'Gamma' } ],
  branches:
   [ { _id: '543dcbcf846c139cc042c813', name: 'Alpha' },
     { _id: '543dcc25846c139cc042c814', name: 'Beta' },
     { _id: '543dcd91846c139cc042c815', name: 'Gamma' } ] }

这是我在 Controller 中的代码,用于使用 Mongoose 获取文档并将它们组合起来。我总是收到错误 500,我的代码有什么问题吗?

var Officers = require('../../models/officers');
var Branches = require('../../models/branches');

router.get('/create', function (req, res) {


  async.parallel({
    officers: function(cb){
      Officers.find({}, '_id name', cb);
    },
    branches: function(cb){
      Branches.find({}, '_id name', cb);
    }
  }, function(err, results){
    res.render('companies/create', results);
  });


});

最佳答案

我上面的代码没有任何问题。结果我忘了把这个 var async = require('async'); 放在代码之前。

var Officers = require('../../models/officers');
var Branches = require('../../models/branches');
var async = require('async');

router.get('/create', function (req, res) {
...
...

关于node.js - Mongoose 和 async.parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437826/

相关文章:

node.js - 使用 Jest、Graphql 和 Sequelize 测试数据库时如何避免 EADDRINUSE

node.js - MongoDB:如何在客户端解析DBRef?

javascript - Mongodb 通过 id 在数组中找到一个对象

包含 "@"的 MongoDB 密码

node.js - Mongoose 将值推送到数组内的数组中

javascript - 为所有请求返回索引文件

node.js - chai 和 Eshint 的单元测试没有通过

jQuery 表排序器在错误的页面上启动

javascript - mongodb 聚合 - 选择特殊条件

angularjs - 如何使用 Passport Js 将 mongodb 用户迁移到 Couchdb?