javascript - 在 node.js mysql 中执行更新查询不起作用

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

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

最佳答案

像这样使用更新查询

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

关于javascript - 在 node.js mysql 中执行更新查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455865/

相关文章:

javascript - 如何使用 Electron 访问生产中的 sqlite3 数据库文件?

javascript - 什么是 var x = x || {} ;

javascript - 金字塔 slider JavaScript

php - 如何将自定义属性值应用于成本

mysql - 当您只有日期(没有时间部分)时按顺序求和列

mysql - 有人用Node.JS更新MySQL吗

node.js - 获取数组中包含特定属性的文档

javascript - 递归:从数组javascript中获取对象

mysql - 如何为 MySQL 创建 CloudFormation 模板?

node.js - Grunt 连接未启动,错误为 "root path must be a string"