Это проект node.js, Express и Mongoose.Завершить функцию в node.js
Я пытаюсь вставить входные данные из поля формы (цены на фрукты) в массив. В моей БД есть имена фруктов. Каждый кусочек фруктов может иметь много цен. Пользователи вводят много разных цен на фрукты, как массив, в мою форму.
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» будет вставлены в БД.
Так что я задаюсь вопросом ... есть ли способ для меня снова и снова зацикливать мой внутренний код, чтобы он мог получить значения, введенные в поле ввода «цена2», «цена3» и т. Д.
Возможно: .. {цена: [req.body.price1, req.body.price2, ...]} ...? –
Проблема заключается в том, что пользователи могут вводить от 1 до бесконечных цен (они имеют доступ к кнопке +/-, которая позволяет им добавлять ценовые поля). Поэтому предложенный вами метод не будет работать в этой ситуации. – MonkeyOnARock
Он работает для части, где вы обновляете поле коллекции Mongo, так как это должен быть массив. Чтобы знать, как обрабатывать произвольное количество значений, посмотрите ответы Paul amd PRDeving. –