これはnode.js、Express、およびMongooseプロジェクトです。node.jsの関数をループする
フォームフィールド(果実の価格)から入力を配列にプッシュしようとしています。私の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」に入力された価格は、DBに挿入されるだけで立っています。
私は疑問に思っています...入力フィールド 'price2'、 'price3'などに入力された値を取得するためにバックエンドコードを繰り返しループする方法があります...
多分:.. {価格:[req.body.price1、req.body.price2、...]} ...? –
この問題は、ユーザーが1から無限の価格(価格フィールドを追加できる+/-ボタンにアクセスできる)からどこにでも入力できることです。だからあなたが提案した方法はこの状況ではうまくいかないでしょう。 – MonkeyOnARock
Mongoコレクションフィールドを更新する部分には、配列でなければならないので動作します。任意の数の値を扱う方法を知るには、Paul amd PRDevingの回答を見てください。 –