我使用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);
})
答案 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...');
})
});