問題は、投稿にデータを挿入する方法に問題があるのか、それとも配列にアクセスしようとしているオブジェクト プロパティの HTML 構文に問題があるのかがわかりません。 .
これは私のモデルで、「materialesProductos」配列の「cantidad」に値を挿入したいと考えています。
const マングース = require('マングース') const スキーマ = mongoose.Schema; const bodyParser = require('body-parser') const ProductoSchema = 新しいスキーマ({ IdProducto:{type:String}、 材料製品:[{nombre:{type:String},cantidad:{type:Number}}], プレシオ:{タイプ:数値}、 画像:{タイプ:文字列}、 名前:{タイプ:文字列}、 説明:{タイプ:文字列}、 }); const Producto = mongoose.model('Producto',ProductoSchema); module.exports = 製品;
これは私の投稿です。「req.body」を使用してすべてのデータを挿入します。必ず配列をクリアしてください。
const Producto = require('../models/Productos.js') const fileUpload = require('express-fileupload') const path = require('パス') 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({ ...必須本文、 画像: '/img/' image.name }) res.redirect('/AgregarProductos') }) }
MaterialsesProductos[].cantidad や MaterialsProductos[][cantidad] などを使用してみましたが、値を挿入できません。
<div class="コントロールグループ"> <div class="フォームグループフローティングラベルフォームグループコントロール"> <input type="button" name="abrirse" id="open" value="Agregar マテリアル"> <div id="ポップアップ" style="表示: なし;"> <div class="コンテンツポップ"> <div><a href="#" id="close">X</a></div> <% for (var a = 0; a<div> <%=materiales[a].説明%> <input type="number" value="0" name="materialesProductos.cantidad" min="0"> </div> <% } %> </div> </div> </div> </div>
そうですね、少し調べましたが解決策が見つかりませんでした。したがって、手動で行う必要があります。
MaterialesProductos[nombre]
(何でも構いません) を使用して、req.body.materialesProductos[nombre]
を使用して配列内の値を取得し、それにアクセスできます。$push
(挿入や作成はできないので、updateOne
しかできません) を使用して、まずドキュメントを作成し、更新後に 2 つのオブジェクトを含む配列を追加します。次のようなもの: