問題是,我不知道在帖子中插入資料的方式是否有問題,或者問題是否出在我嘗試訪問數組的物件屬性的 HTML 語法上.
這是我的模型,我想在「MaterialesProductos」陣列的「cantidad」中插入一個值。
const mongoose = require('mongoose') const Schema = mongoose.Schema; const bodyParser = require('body-parser') const ProductoSchema = new Schema({ IdProducto:{type:String}, MaterialesProductos:[{nombre:{type:String},cantidad:{type:Number}}], precio:{type:Number}, image:{type:String}, nombre:{type:String}, descripcion:{type:String}, }); const Producto = mongoose.model('Producto',ProductoSchema); module.exports = Producto;
這是我的帖子,我用「req.body」插入所有資料。始終將數組清空。
const Producto = require('../models/Productos.js') const fileUpload = require('express-fileupload') const path = require('path') module.exports = (req,res)=>{ console.log(req.body) let image = req.files.image; image.mv(path.resolve(__dirname,'..','public/img',image.name),async (error)=>{ await Producto.create({ ...req.body, image: '/img/' image.name }) res.redirect('/AgregarProductos') }) }
我已經嘗試過使用 MaterialesProductos[].cantidad 或 MaterialesProductos[][cantidad] 等,但我無法插入該值。
<div class="control-group"> <div class="form-group floating-label-form-group controls"> <input type="button" name="abrirse" id="open" value="Agregar materiales"> <div id="popup" style="display: none;"> <div class="content-pop"> <div><a href="#" id="close">X</a></div> <% for (var a = 0; a < materiales.length; a ) { %> <div> <%=materiales[a].Descripcion%> <input type="number" value="0" name="MaterialesProductos.cantidad" min="0"> </div> <% } %> </div> </div> </div> </div>#
P粉5638310522024-02-27 12:49:23
嗯,我研究了一下,沒有找到解決方案。所以我必須手動完成。
使用 MaterialesProductos[nombre]
(可以是任何內容),我使用 req.body.MaterialesProductos[nombre]
來取得陣列中的值,我可以存取它。
使用 $push
(我無法插入或建立它,所以我只能 updateOne
)我先建立文檔,然後在更新它後新增包含兩個物件的陣列。
類似這樣的事情:
const Producto = require('../models/Productos.js') const fileUpload = require('express-fileupload') const path = require('path') module.exports = (req, res) => { let image = req.files.image; image.mv(path.resolve(__dirname, '..', 'public/img', image.name), async (error) => { await Producto.create({...req.body, image: '/img/' image.name }) for (a=0; a並且工作了。
回覆0