为数组中的每个项运行Node端点?

时间:2017-07-15 22:21:11

标签: javascript angularjs arrays node.js express

我正在使用ExpressJs,NodeJs,AngularJs。

让我们说我有一个数组,其中有几个对象代表杂货店账户以及银行欠他们的金额。

[{
account: 1, 
amount: 2.33
}, 
{
account: 2, 
amount: 5.99
}, 
{
account: 3, 
amount: 6.00
}];

这个数组可以改变,并且数组中可以有1个对象或10个对象,这取决于银行欠那个星期的杂货店。

对于每个对象,我需要运行一个节点端点来传输这些钱。 例如:

const app = module.exports = express();
app.post('/transfer', (req, res) => { //Code goes in here };

如何运行app.post(' / transfer') n 次数,具体取决于数组中的对象数量?

还是一个菜鸟,所以我很难写出我的问题。 为简单起见:为数组中的每个项运行一个函数。

2项=运行两次功能。 (异步)

1 个答案:

答案 0 :(得分:0)

您可以在请求正文中传递该数组,并调用为数组中的每个项目执行传输的辅助函数:

app.post('/transfer', (req, res) => {
  const accounts = req.body;

  accounts.forEach((account) => transfer(account));
};

function transfer(account) {
  // perform the transfer for a single account
}

该辅助功能可以是异步,返回承诺,您可以使用Promise.all来解决所有转移:

app.post('/transfer', (req, res) => {

  const accounts = req.body;
  const transferPromises = accounts.map((account) => transfer(account));

  Promise.all(transferPromises).then(...).catch(...);
};

function transfer(account) {
  // returns a promise of transfer for a single account
}