Javascript 在node.js mysql中执行更新查询不工作

Javascript 在node.js mysql中执行更新查询不工作,javascript,mysql,node.js,express,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',

我不熟悉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"
}
res.status(201).end();
我的请求如下所示:

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"
}
res.status(201).end();
请求主体如下所示:

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"
}
res.status(201).end();
已成功连接到数据库。然后我有以下代码:

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"' }

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

像这样使用更新查询

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

嗯,我很笨。对不起,伙计们:(

我做了以下几件事

res.status(201);
实际上,您必须像这样完成请求:

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"
}
res.status(201).end();

当服务器没有响应时,数据库中的值是否得到更新?
mettwoch\u id
是否为INT?如果是,请尝试删除引号:
mettwoch\u id=1
您应该在sql中使用转义变量,因为您的代码可能容易受到sql注入的攻击。@Mr.Web它是,但手动执行它很好。@jonicous,我明白了……我的代码现在看起来很好像这样:
connection.query('updatemettwochset?WHERE?',[{mettmeister:mettmeister},{mettwoch_id:mettwochId}],函数(err){console.log(err);if(!err){res.status(201);}else{res status(500);})
没错,但您一直在说数据库也没有更新。@thefourtheye忽略了显而易见的事情..:/I非常抱歉:(如果我没有弄错,请用简短的方式--
发送状态
)。