到目前为止我已经完成的表单发布请求一切正常,但是当我尝试进行Ajax调用时,我无法在服务器上处理它。虽然它返回'success'参数,但我无法将信息保存在数据库中,也无法在服务器上对其进行任何操作。
page.jade:
script
(function () {
$('ul').find('a').on("click", function () {
var option = $(this).data('res');
$('article').animate({ 'margin-left': -600 });
console.log(option + ' ' + #{idn});
var envio = {resultado: option, idupdate: #{idn}};
$.ajax({
url: '/',
type: "post",
data: JSON.stringify(envio),
contentType: 'application/json',
success: function(data) {
console.log('success');
}
});
});
})();
server.js
app.post('/', function (req, res) {
var Resultado = req.body.resultado;
var idUpdate = req.body.idupdate;
if (Resultado == "yes") {
connection.query('UPDATE questions SET yes=yes+1 WHERE id=' + idUpdate + ');');
} else {
connection.query('UPDATE questions SET no=no+1 WHERE id=' + idUpdate + ');');
}
});
我试图找到任何类似的情况,但关于这个特殊情况的信息很少。感谢!!!
答案 0 :(得分:1)
看起来两个查询都格式错误,
connection.query('UPDATE questions SET yes=yes+1 WHERE id=' + idUpdate + ');');
(here) ----^
connection.query('UPDATE questions SET no=no+1 WHERE id=' + idUpdate + ');');
(and here) ----^
然后,删除+ ');'
部分,它应该有效。
像:
connection.query('UPDATE questions SET yes=yes+1 WHERE id=' + idUpdate);
Aditionaly你需要结束请求,调用res.end()
最终代码:
app.post('/', function (req, res) {
var Resultado = req.body.resultado;
var idUpdate = req.body.idupdate;
if (Resultado == "yes") {
connection.query('UPDATE questions SET yes=yes+1 WHERE id=' + idUpdate);
} else {
connection.query('UPDATE questions SET no=no+1 WHERE id=' + idUpdate);
}
res.end(); // must be called.
});