在node.js mysql中执行UPDATE查询不起作用

时间:2015-04-05 09:23:25

标签: javascript mysql node.js express

我是node.js的新手(和mysql结合使用)并尝试根据请求参数和请求体更新我的数据库。我的文件开头看起来像这样:

var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'm3ttulat0r',
    debug: true
});
var app = express();
app.use(bodyParser.json());

我的请求如下:

http://localhost:8080/mettmeister/1

请求正文如下所示:

{
  "mettmeister": "Jonas"
}

与数据库的连接成功。然后我有以下代码:

app.post('/mettmeister/:mettwochId', function(req, res) {

    var mettmeister = req.body.mettmeister;
    var mettwochId = req.params.mettwochId;
    var query = 'UPDATE mettwoch SET mettmeister = "'+ mettmeister +'" WHERE mettwoch_id = "'+ mettwochId +'"';

    console.log(mettmeister, mettwochId);

    connection.query(query, function(err, result) {
        if (!err) {
            res.status(201);
        } else {
            res.status(500);
        }
    });

});

console.log(mettmeister, mettwochId);返回Jonas 1,这很好。

问题是它发送请求并且服务器根据日志获取消息但没有任何反应。服务器"停止"显然执行查询。

我打开了调试,查询看起来很好。

--> ComQueryPacket
{ command: 3,
  sql: 'UPDATE mettwoch SET mettmeister = "Jonas" WHERE mettwoch_id = "1"' }

如果我在我的数据库中手动执行查询,它可以工作..我真的很高兴任何帮助。谢谢! :)

2 个答案:

答案 0 :(得分:3)

使用像这样的更新查询

connection.query('UPDATE mettwoch SET ? WHERE ?', [{ mettmeister: mettmeister }, { mettwoch_id: mettwochId }])

答案 1 :(得分:1)

好吧,我很蠢。对不起伙计们:(

我做了以下

res.status(201);

实际上你必须完成这样的请求:

res.status(201).end();