早上好,我正在尝试通过ID为要显示的每个项目在我的应用中添加一个更新和删除。不幸的是,我在应用程序中的输出是什么,在我的console.log中,“更新”说是“ affectedRows:0”,数据库中没有更新的数据,在“删除我的console.log”中说是错误或为null。我不确定我在这里缺少什么,请帮助我。
这是我的代码
我的更新代码:
<div class="item">
<p>Item 5</p>
<p>Item 6</p>
<p>Item 7</p>
<p>Item 8</p>
</div>
Update_Backend:
submit = () => {
fetch('http://192.168.254.***:****/SendOrder/update', {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
spcl_req: this.state.SplOrder,
order_quantity: this.state.count,
order_type: this.state.DineIn,
//order_type: this.state.TakeOut
})
}).then(res => res.json())
.then((responseJson) => {
Alert.alert(JSON.stringify(responseJson))
console.log(responseJson);
})
.catch(error => console.error('Error:', error))
}
我的删除代码:
router.put('/update', function(req,res){
db.query('Update orders Set order_quantity=?, order_type=?, spcl_req=? Where order_id=?', [req.body.order_quantity, req.body.order_type, req.body.spcl_req, req.body.order_id], function(error, rows, field) {
if(error) throw error;
console.log(rows);
res.end(JSON.stringify(rows));
})
Delete_Backend:
constructor(props){
super(props)
this.state = { deleteOrder: null }
delete = () => {
fetch('http://192.168.254.101:3307/SendOrder/delete_order/' + this.state.deleteOrder, {
method: 'DELETE'
}).then((responseData) => {
console.log(responseData.rows)
}).done();
}
屏幕截图:
答案 0 :(得分:0)
我想您是从前端发送了错误的参数,并试图访问它们。在第一个请求中,如果看到没有发送req.body.order_id,则在第二个删除请求后端中,您尝试访问req.params.order_id,该路由在/ delete_order /:id时未定义。因此,为此,您需要使用req.params.id。