node.js - Axios 回调函数在 put 方法中不起作用
问题描述
我正在尝试使用 Axios 更新 MySQL 数据库。我的问题是数据更新成功,但 axios 回调不起作用。而发布,删除和回调工作完美。这是我在下面给出的代码:
前端代码:
UpdateTeacher = (id) =>{
const editedata = {
id: id,
fname: this.state.fname,
lname: this.state.lname,
roles: this.state.roles,
join_date: this.state.join_date,
email: this.state.email,
assign_subject: this.state.assign_subject
};
axios.put(`http://localhost:3001/edit/${id}`, editedata)
.then((res) => {
// I cant get any console.log neither any state set here
this.setState({
success: "Update data Successfully!",
type:"success",
isEdit:false
});
console.log(res.data.json);
}).catch((err) => {
console.log(err);
this.setState({
error: "Error! Please try again later!",
type:"error"
});
})
}
后端代码:
app.put("/edit/:id", (req, res) => {
const {id } = req.params.id;
const fname = req.body.fname;
const lname = req.body.lname;
const roles = req.body.roles;
const joining = req.body.join_date;
const email = req.body.email;
const assign_subject = req.body.assign_subject;
var updateData = req.body;
console.log(updateData);
db.query(`UPDATE teacher SET fname=?, lname=?, roles=?, join_date=?, email=?, assign_subject=? WHERE id=?`,[fname, lname, roles,joining,email,assign_subject, req.params.id]),(err,result)=>{
if (err) return console.error(err.message);
res.status(200).send(results);
console.log("Updated Row(s):", results.affectedRows);
}
});
解决方案
这里有一些问题可能会导致问题。在您的服务器代码中,您必须在发生错误时返回响应,否则服务器将挂起。
像这样的东西:
if (err) return res.status(500).send(err.message);
此外,您正在发送,但您在回调中results
声明的变量是. 所以代码应该是db.query
result
res.status(200).send(result);
console.log("Updated Row(s):", result.affectedRows);
第三,在您正在登录的客户端代码中console.log(res.data.json)
,但我认为这应该是公正的console.log(res.data)
;
推荐阅读
- python - 在我的代码中使用 ginput 返回错误:matplotlib 当前正在使用非 GUI 后端
- angular - 如何在 Angular 5 项目中使用管道(过滤器)
- c# - 如何从列表中选择并使用 Automapper 映射另一个对象
- graphql - 任何查询都返回 TypeError: Failed to fetch in launchpad.graphql.com
- kotlin - 如何在 Kotlin 文档 Dokka/Kdoc 中转义符号?
- .net - 如何使资源字典中的部分文本加粗
- php - PHP正则表达式自定义字符串变量替换
- javascript - 为什么 lodash 实现使用 call 来减少参数并在之后应用?
- c - 获取被调用对象不是第 34:13 行的函数或函数指针问题
- asp.net-core-2.1 - 有没有办法在 ASP.NET Core 2.1 中捕获对 Razor 页面不存在的自定义处理程序的 HTTP 请求?