我正在尝试使用我的节点js应用程序中的mysql更新数据库,当我按下按钮但它没有执行。有人可以帮我解决这个问题。谢谢
这是ejs文件中的代码:
function Resolve(){
$.ajax({
url: "/resolve-complaint",
type: "post",
dataType: "json",
data: { "Id": "14" },
success: function (data) {
if(data.status=="success"){
alert(" has been resolved.");
}
}
});
}
这是index.js文件中的代码:
router.post('/resolve-complaint', function (req, res, next) {
pool.getConnection(function (err, connection) {
connection.query('update complaint set resolved=1 where cid='+req.body.Id, function (err, rows) {
connection.release();
});
});
res.json({ "status": "success" });
});
答案 0 :(得分:0)
始终检查您的err
参数。你很可能在那里得到答案。
根据具体情况,做这样的事情通常是个好主意:
... function (err, rows) {
if (err) return console.error(err); // <---
connection.release();
});
或者,在你的情况下可能更加认可:
... function (err, rows) {
if (err) {
console.error(err);
return res.send({ "status": "failure" });
}
connection.release();
});
这应该针对pool.getConnection
和connection.query
进行。
此外,您在知道成功消息是否成功之前发送成功消息。您应该尝试在回调中发送成功消息。