Bagaimana untuk memasukkan nilai ke dalam harta objek tatasusunan?
P粉718730956
P粉718730956 2024-02-26 17:17:47
0
1
350

Masalahnya, saya tidak tahu sama ada terdapat sesuatu yang salah dengan cara saya memasukkan data dalam siaran, atau jika masalahnya ialah dengan sintaks HTML sifat objek yang saya cuba mengakses tatasusunan.

Ini adalah model saya dan saya ingin memasukkan nilai dalam "cantidad" tatasusunan "MaterialesProductos".

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;

Ini post saya, saya guna "req.body" untuk masukkan semua data. Sentiasa kosongkan tatasusunan.

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')
    })
    }

Saya telah mencuba menggunakan MaterialesProductos[].cantidad atau MaterialesProductos[][cantidad] dsb. tetapi saya tidak boleh memasukkan nilainya.

<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粉718730956
P粉718730956

membalas semua(1)
P粉563831052

Nah, saya membuat kajian dan tidak menemui penyelesaian. Jadi saya perlu melakukannya secara manual.

Menggunakan MaterialesProductos[nombre] (可以是任何内容),我使用 req.body.MaterialesProductos[nombre] untuk mendapatkan nilai dalam tatasusunan, saya boleh mengaksesnya. Menggunakan $push (我无法插入或创建它,所以我只能 updateOne) Saya mula-mula mencipta dokumen dan kemudian selepas mengemas kininya menambah tatasusunan yang mengandungi kedua-dua objek.

Perkara seperti ini:

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

Dan ia berjaya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan