我正在尝试将JSON对象发送到我的Node.js后端,并将数据保留在MongoDB中。 我有一个带有供应商子文档的产品类型模型。 我想在产品JSON中发送供应商ID,并让Node带我已经存在于数据库中的供应商。
这是我的Node模型
var mongoose = require ('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var Proveedor = require('../models/proveedor');
var Schema = mongoose.Schema;
var productoSchema = new Schema ({
nombre :{ type : String, required : [true, 'El nombre es necesario'] },
descripcion :{ type: String, required: [true, 'La descripcion es necesaria']},
img : {type: String, required:false},
stock : {type : String, required : [true, "El stock es necesario"]},
precio : {type: String, required : [true, " El precio es necesario"]},
proveedor:{
type: Schema.Types.ObjectId,
ref:'Proveedor',
//required: [true, "el id del proveedor es requerido"]
}
/*type: Schema.Types.ObjectId,
ref:'Proveedor',
required: [true, "el id del proveedor es requerido"],
//required: [true, "el nombre del proveedor es requerido"] */
}, {collection : 'productos'});
productoSchema.plugin(uniqueValidator, { message: 'debe ser único' });
module.exports = mongoose.model('Producto', productoSchema);
这是您应该收到的JSON
{
"_id": "5f1ca00e75f5ae1a0c1f1008",
"nombre": "Minitor",
"descripcion": "24' ",
"img": "null",
"stock": "1",
"precio": "5000 $",
"__v": 0,
"proveedor": [
{
"_id": "5f1b6043c142eb1b685de68b"
},
{
"_id": "5f1b6013c142eb1b685de68a"
}
]
}
并由快速终点站帖子
管理app.post('/', mdAutenticacion.verificaToken, (req, res) => {
var body = req.body;
var producto = new Producto({
nombre: body.nombre,
descripcion: body.descripcion,
img: body.img,
stock: body.stock,
precio: body.precio,
proveedor: body.proveedor,
});
producto.save((err, productoGuardado) => {
if (err) {
return res.status(400).json({
ok: false,
mensaje: 'Error al generar producto',
errors: err
});
}
res.status(200).json({
ok: true,
producto: productoGuardado,
productoToken: req.producto
});
});
});
但是当我发送供应商的ID时,它不会生成包含两个供应商及其数据的子文档
我需要在发送ID时,将他们在数据库中拥有的提供程序以及所有数据带给我,就像这样...
{
"_id": "5f1ca00e75f5ae1a0c1f1008",
"nombre": "Monitor",
"descripcion": "24' ",
"img": " ",
"stock": "1",
"precio": "5000",
"__v": 0,
"proveedor": [
{
"_id": "5f1b6043c142eb1b685de68b",
"nombre": "Marcelo",
"direccion": "Ituzaingo",
"cuit": "123456789212",
"email": "Marcelo@gmail.com",
"telefono": "123456789121",
"situacion_afip": "Proveedor 2"
},
{
"_id": "5f1ef5162f662d1ae768666b",
"nombre": "Andre",
"direccion": "Ituzaingo",
"cuit": "9191919",
"email": "Andre@gmail.com",
"telefono": "919191191",
"situacion_afip": "Proveedor 3"
}
]
}