在node.js中循环一个函数

时间:2016-06-24 11:34:51

标签: javascript node.js

这是node.js,Express和Mongoose项目。

我正在尝试将表单字段(水果价格)的输入推送到数组中。我的DB里有水果的名字。每块水果都可以有很多价格。用户以我的形式输入许多不同的水果价格作为数组。

router.post('/fruit', function(req, res) {
    //Some code to match the name of the fruit entered by user to the name of the fruit in the DB
    if(!existingFruit) {
    //Some code
    }
    if(existingFruit) {
        Fruit.findOneAndUpdate({fruit: req.body.fruit}, {
            $push: { price: req.body.price1 }},
    //Some code which tells the user whether the price they entered was inserted into the DB or not
});

以下是有问题的输入字段:

<label for="price1">Price</label>
<input type="text" name="price1" id="price1"/>

<label for="price2">Price</label>
<input type="text" name="price2" id="price2"/>

作为我的后端代码和表单字段,只有“price1”中输入的价格才会被插入到数据库中。

所以我想知道......有没有办法让我一遍又一遍地循环我的后端代码,以便检索输入字段'price2','price3'等中输入的值......

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作来迭代所有字段:

let i = 0;
let field;
while (field = form['price' + i++]) {
   ...
}

答案 1 :(得分:0)

Express body-parser使用表单字段名中的数组访问约定。因此,如果您将表单命名为:price [0],那么当正文到达post方法时,它将成为req.body.prices中的第一个元素。

Fwiw你也可以做对象,所以如果你想要一个带有名字和值的水果数组,你可以创建名称为“fruits [0] .name”和“fruits [0] .prices [0]”的表单输入