为数组中的每个项目运行节点端点?
我正在使用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项=运行function两次。 (asynchronous)
您可以在请求正文中传递该数组,并调用一个辅助函数来为数组中的每个项目执行传输:
app.post('/transfer', (req, res) => { const accounts = req.body; accounts.forEach((account) => transfer(account)); }; function transfer(account) { // perform the transfer for a single account }
那个辅助函数可以是asynchronous的,返回一个promise,你可以使用Promise.all
来parsing所有的传输:
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 }