【问题标题】:Heroku Node.JS Database ErrorHeroku Node.JS 数据库错误
【发布时间】:2017-06-27 02:16:09
【问题描述】:

我有一个使用 Heroku 部署的 Node.JS 应用程序,该应用程序具有一个简单的 CRUD 系统。但是,每当我使用 Web 应用程序本身更新一行时,我都会遇到问题。

这是我的 server.js 文件中 UPDATE 语句的代码

app.post('/logs/edit/:mobile', function(req, res){
   var input = JSON.parse(JSON.stringify(req.body));
   var mobile = req.params.mobile;
   var data = {            
        last    : input.last,
        first   : input.first,
        middle  : input.middle,
        mobile  : input.mobile,
        email   : input.email,
        bday    : input.bday,
        status  : input.status
   };
   connection.query("UPDATE logs set ? WHERE mobile = ? ",[data,mobile], function(err, rows){  
      if(err) console.log(err);
      res.redirect('/logs');          
   });
});

然后这是我的日志中显示的错误

2017-06-27T02:09:55.662620+00:00 app[web.1]: { Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Doe', 'Doe', 'Doe', `first` = 'John', 'John', `middle` = 'Mike', 'Mike', `mobil' at line 1
2017-06-27T02:09:55.662637+00:00 app[web.1]:     at Query.Sequence._packetToError (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
2017-06-27T02:09:55.662639+00:00 app[web.1]:     at Query.ErrorPacket (/app/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
2017-06-27T02:09:55.662640+00:00 app[web.1]:     at Protocol._parsePacket (/app/node_modules/mysql/lib/protocol/Protocol.js:280:23)
2017-06-27T02:09:55.662641+00:00 app[web.1]:     at Parser.write (/app/node_modules/mysql/lib/protocol/Parser.js:73:12)
2017-06-27T02:09:55.662642+00:00 app[web.1]:     at Protocol.write (/app/node_modules/mysql/lib/protocol/Protocol.js:39:16)
2017-06-27T02:09:55.662642+00:00 app[web.1]:     at Socket.<anonymous> (/app/node_modules/mysql/lib/Connection.js:96:28)
2017-06-27T02:09:55.662644+00:00 app[web.1]:     at emitOne (events.js:96:13)
2017-06-27T02:09:55.662644+00:00 app[web.1]:     at Socket.emit (events.js:188:7)
2017-06-27T02:09:55.662646+00:00 app[web.1]:     at readableAddChunk (_stream_readable.js:176:18)
2017-06-27T02:09:55.662646+00:00 app[web.1]:     at Socket.Readable.push (_stream_readable.js:134:10)
2017-06-27T02:09:55.662648+00:00 app[web.1]:     --------------------
2017-06-27T02:09:55.662648+00:00 app[web.1]:     at Protocol._enqueue (/app/node_modules/mysql/lib/protocol/Protocol.js:141:48)
2017-06-27T02:09:55.662649+00:00 app[web.1]:     at Connection.query (/app/node_modules/mysql/lib/Connection.js:201:25)
2017-06-27T02:09:55.662650+00:00 app[web.1]:     at /app/server.js:59:16
2017-06-27T02:09:55.662650+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2017-06-27T02:09:55.662651+00:00 app[web.1]:     at next (/app/node_modules/express/lib/router/route.js:131:13)
2017-06-27T02:09:55.662652+00:00 app[web.1]:     at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2017-06-27T02:09:55.662653+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2017-06-27T02:09:55.662653+00:00 app[web.1]:     at /app/node_modules/express/lib/router/index.js:277:22
2017-06-27T02:09:55.662654+00:00 app[web.1]:     at param (/app/node_modules/express/lib/router/index.js:349:14)
2017-06-27T02:09:55.662654+00:00 app[web.1]:     at param (/app/node_modules/express/lib/router/index.js:365:14)
2017-06-27T02:09:55.662655+00:00 app[web.1]:   code: 'ER_PARSE_ERROR',
2017-06-27T02:09:55.662656+00:00 app[web.1]:   errno: 1064,
2017-06-27T02:09:55.662657+00:00 app[web.1]:   sqlState: '42000',
2017-06-27T02:09:55.662657+00:00 app[web.1]:   index: 0 }

我希望有一个解决方案。

非常感谢

【问题讨论】:

    标签: node.js heroku cleardb


    【解决方案1】:

    据我所知,如果您像使用data 那样向它们发送 JSON,则有些 MySQL 版本将无法工作。我实际上不知道您的代码有什么问题,但是,就我所见,您的节点代码还可以。

    我建议您直接在 mysql 上尝试该查询(通过使用控制台或工作台)

    【讨论】:

    • 嗨 Rafael,我不完全确定我与 Heroku 一起使用的 MySQL 版本是否与我所做的代码兼容,但是当我在本地机器上运行它时它确实可以完美运行WAMP。我确实尝试在 MySQL Workbench 上查询它,它确实有效。
    猜你喜欢
    • 2019-01-17
    • 2019-01-03
    • 1970-01-01
    • 2015-03-31
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    相关资源
    最近更新 更多