Я создал форму для сохранения новой недвижимости в MongoDB, используя multer для многоэлементных данных формы и анализатора тела.
Все отлично работает, кроме «комнат» в «путе»(РЕДАКТИРОВАТЬ) маршрут, который возвращается как массив, а не одно значение, что абсолютно бессмысленно, так как все остальное работает просто отлично.
Я пытался перевести данные из массива водно числовое значение, но это не работает, как будто я пытаюсь отредактировать документ еще раз, новое значение помещается в массив вместо замены старого.
//EDIT PUT ROUTE
router.put("/immobili/:_id/edit",
upload.fields([{ name: 'estateImages', maxCount: 30 },
{ name: 'document', maxCount: 1 }]),
(req, res) => {
// IMAGES LOGIC SKIPPED HERE AS NOT PERTINENT
Estate.findOneAndUpdate({ _id: requestedId }, {
rooms: req.body.rooms, //BUGGED
squareFeets: req.body.squareFeets, //WORKS CORRECTLY
//CALLBACK ...
}}
// result of console.log of req.body.rooms and req.body.squareFeets
rooms: [ '2', '' ],
squareFeets: 120
//EJS FORM DATA
<form action="/estates/<%= estate._id %>/edit?_method=PUT" method="POST"
enctype="multipart/form-data">
//INPUT NOT WORKING:
<input name="rooms" value="<%= estate.rooms %>"></input>
//INPUT THAT WORKS:
<input name="superficie" value="<%= estate.squareFeets %>"></input>
<input type="submit" value="Publish">
</form>