将对象数组放入风帆控制器中

控制器需要看起来像为传递的数组中的每个对象创buildlogging? 我是否创build一个for循环?

这是我有:

Agent.findOneById(req.query[0].agentId, function(err, agent) { console.log(agent); for (i = 0; i < req.query.length; i++) { Record.findOrCreate({userDN: req.query[i].userDN}, { name: req.query[i].name, owner: agent.id }).exec(function (err, newRecord) { if (err) return res.negotiate(err) res.json(newRecord); }) } 

这创build一个对象,数组中有15个项目。

这是来自数组的每个请求的一个对象:

 query: { '0': { userDN: '99999', name: 'Test User', agentId: '4' }, 

使用内置的蓝鸟库 。 具体来说, Promise.all() 。

代码示例(也使用lodash forEach来简化事情):

 var Promise = require('bluebird'); ... Agent.findOneById(req.query[0].agentId, function(err, agent) { console.log(agent); var promises = []; _.forEach(req.query, function(record) { promises.push(Record.findOrCreate({userDN: record.userDN}, { name: record.name, owner: agent.id })); }); Promise.all(promises) .then(function(records) { res.json(records); }) .catch(function(err) { return res.negotiate(err); }) }