我需要执行一个发送数组的请求。但是当我这样做时,我得到的结果是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);
};
答案 0 :(得分:2)
我个人没有对续集进行很多工作,但是我很确定您需要直接传递request-body对象,因为git merge
包含数据数组,因此req.body
例如将为req.body.nom_name
。此外,undefined
被定义为在发送响应之前应等待的async-function:
bulkCreate