我是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"' }
如果我在我的数据库中手动执行查询,它可以工作..我真的很高兴任何帮助。谢谢! :)
答案 0 :(得分:3)
使用像这样的更新查询
connection.query('UPDATE mettwoch SET ? WHERE ?', [{ mettmeister: mettmeister }, { mettwoch_id: mettwochId }])
答案 1 :(得分:1)
好吧,我很蠢。对不起伙计们:(
我做了以下
res.status(201);
实际上你必须完成这样的请求:
res.status(201).end();