React Native-更新“ affectedRows:0”,并且删除未定义

时间:2018-08-15 18:10:25

标签: javascript android reactjs react-native mobile

早上好,我正在尝试通过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();
}

屏幕截图:

UI

Nodemon - console.log

1 个答案:

答案 0 :(得分:0)

我想您是从前端发送了错误的参数,并试图访问它们。在第一个请求中,如果看到没有发送req.body.order_id,则在第二个删除请求后端中,您尝试访问req.params.order_id,该路由在/ delete_order /:id时未定义。因此,为此,您需要使用req.params.id。