【发布时间】:2020-09-26 18:13:48
【问题描述】:
这是我的订单模型。
const Order = mongoose.model('Order', new mongoose.Schema({
saleprice: {type: Number},
discount: {type: Number},
products : [{
type: productSchema
}]
}));
这是我的产品模型
const productSchema = new mongoose.Schema({
name: {type: String, required: true},
price: {type: Number, required: true},
category: {type: String, required: true}
});
现在我想在单个订单发布 API 调用中发布多个产品;目前使用这种方法,但这不适用于数组。如何仅通过以 JSON 格式发送多个 productId 来添加多个产品。
router.post('/', async(req, res) =>{
const product = await Product.findById(req.body.productId);
if(!product)
return res.status(400).send('Invalid product.');
const order =new Order({
saleprice: "790",
discount: "100",
products: [{
_id: product._id,
name: product.name,
price: (product.price).toString(),
category: product.category
}]
});
await order.save();
res.send(order);
});
【问题讨论】:
-
你能把
console.log(req.body)放在你的Product.findById上面,然后给我们看看输出吗? -
*
console.log(req.body.productId) -
console.log(req.body.productId); = 5edc2a837c429c1f647ac6f5在Product.findbyID之前执行此操作将显示通过我们的 JSON 提供的 ID{ "productId": "5edc2a837c429c1f647ac6f5" }
标签: node.js json mongodb express mongoose