Mongoose和async.parallel

时间:2014-10-18 08:38:05

标签: 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' } ] }

这是我在控制器中的代码,用于使用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);
  });


});

1 个答案:

答案 0 :(得分:0)

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

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

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