我需要执行一个发送数组的请求。但是当我这样做时,我得到null
了结果。
结果请求有效负载:
[
{nom_name: "Test", cost: 500, quantity: 1, parentOrder_id: 19},
{nom_name: "35634", cost: 100, quantity: 1, parentOrder_id: 19}
]
结果预览:
{
address: null
apartment: null
code: null
cost: null
date_delivery: null
floor: null
hierarchyLevel: 1
is_new: true
name: null
nom_name: null
order_id: 40
parentOrder_id: null
payment: null
quantity: null
telephone: null
}
我该如何解决防止将null
值发送到服务器的问题?这样发布请求就可以精确地发送一个数组,而不是单个对象。
服务:
create(order: Order[]): Observable<Order> {
return this.http.post<Order>(`${env.url}/api/orders/create`, order);
}
ts:
onSave() {
const order: Order[] =
this.order.list.map(e => {
const { order_id, ...rest } = e
return ({ ...rest, parentOrder_id: 19 })
})
this._order.create(order)
.subscribe(
() => {
console.log('Data Saved.')
},
error => {
console.log(error)
}
);
}
在服务器上,我正在使用Nodejs和ORM Sequelize。
node.js控制器:
module.exports.create = function (req, res) {
const order = db.orders.bulkCreate([
{
nom_name: req.body.nom_name,
quantity: req.body.quantity,
cost: req.body.cost,
parentOrder_id: req.body.parentOrder_id
}
])
res.status(201).json(order);
};
我个人没有对sequelize进行很多工作,但是我很确定您必须直接传递request-body对象,因为它req.body
包含数据数组,因此req.body.nom_name
例如undefined
。也bulkCreate
定义为发送响应之前应等待的异步功能:
module.exports.create = async (req, res) => {
const orders = await db.orders.bulkCreate(req.body);
res.status(201).json(orders);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句