cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memasukkan nilai ke dalam harta objek tatasusunan?

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粉718730956P粉718730956335 hari yang lalu390

membalas semua(1)saya akan balas

  • P粉563831052

    P粉5638310522024-02-27 12:49:23

    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.

    balas
    0
  • Batalbalas