在Node.js Express站点上使用Jquery Ajax POST

时间:2014-02-22 18:02:26

标签: jquery ajax node.js

到目前为止我已经完成的表单发布请求一切正常,但是当我尝试进行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 + ');');
    }
});

我试图找到任何类似的情况,但关于这个特殊情况的信息很少。感谢!!!

1 个答案:

答案 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.
});