反应不从MySQL获取数据

时间:2020-06-03 05:25:24

标签: javascript mysql reactjs web frontend

我使用nodejs和mysql构建一个React应用。我想从react更新条目,但是以下代码不起作用,我无法理解问题出在哪里。任何建议都非常感谢。

//来自index.js

script.get('/updatepost/:id', (req, res) => {
    let sql = `UPDATE posts SET name = '${req.body.name}', school='${req.body.school}' WHERE id = ${req.params.id}`;
    let query = connection.query(sql, (err, result) => {
        if(err) {
            return err;  
        }
        console.log(result);
        res.send('Post updated...');
    })
});

//来自反应成分

axios(`http://localhost:4000/updatepost/${userId}`, {
method: 'PATCH',
data: qs.stringify(data);
})

1 个答案:

答案 0 :(得分:0)

我认为您正在使用补丁来发送数据(从React),但是您正在使用“获取”来接收数据(从节点)。

尝试:

script.patch('/updatepost/:id', (req, res) => {
    let sql = `UPDATE posts SET name = '${req.body.name}', school='${req.body.school}' WHERE id = ${req.params.id}`;
    let query = connection.query(sql, (err, result) => {
        if(err) {
            return err;  
        }
        console.log(result);
        res.send('Post updated...');
    })
});

我认为您必须错误地使用bodyParser中间件。尝试在nodejs上安装body-parser并将其添加到脚本补丁之前,如下所示:

    var bodyParser = require('body-parser')    

    script.use(bodyParser.json())

    script.patch('/updatepost/:id', (req, res) => {
    let sql = `UPDATE posts SET name = '${req.body.name}', school='${req.body.school}' WHERE id = ${req.params.id}`;
    let query = connection.query(sql, (err, result) => {
        if(err) {
            return err;  
        }
        console.log(result);
        res.send('Post updated...');
    })
});