将 Node.js 与 MySQL 连接的问题

Posted

技术标签:

【中文标题】将 Node.js 与 MySQL 连接的问题【英文标题】:Problem with connecting Node.js with MySQL 【发布时间】:2019-04-21 02:10:12 【问题描述】:

我目前正在开发 c9 IDE,当我运行下面的代码时,它给了我错误。如何解决此问题?

app.js

var mysql = require("mysql");

var connection = mysql.createConnection(
   host: 'localhost',
   user: 'poream3387',
   database: 'join_us'
);

var q = 'SELECT CURTIME() as time, CURDATE as date, NOW() as now';

connection.query(q, function (error, results, fields) 
    if (error) throw error;
    console.log(results);
);

connection.end();

命令

node app.js

错误

/home/ubuntu/workspace/node_modules/mysql/lib/protocol/Parser.js:80 抛出错误; // 重新抛出非 MySQL 错误 ^

错误:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“CURDATE” 在 Query.Sequence._packetToError (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14) 在 Query.ErrorPacket (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/sequences/Query.js:77:18) 在 Protocol._parsePacket (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/Protocol.js:278:23) 在 Parser.write (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/Parser.js:76:12) 在 Protocol.write (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/Protocol.js:38:16) 在套接字。 (/home/ubuntu/workspace/node_modules/mysql/lib/Connection.js:91:28) 在套接字。 (/home/ubuntu/workspace/node_modules/mysql/lib/Connection.js:502:10) 在 emitOne (events.js:96:13) 在 Socket.emit (events.js:188:7) 在 readableAddChunk (_stream_readable.js:176:18) -------------------- 在 Protocol._enqueue (/home/ubuntu/workspace/node_modules/mysql/lib/protocol/Protocol.js:144:48) 在 Connection.query (/home/ubuntu/workspace/node_modules/mysql/lib/Connection.js:200:25) 在对象。 (/home/ubuntu/workspace/app.js:12:12) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32) 在 tryModuleLoad (module.js:446:12) 在 Function.Module._load (module.js:438:3) 在 Module.runMain (module.js:604:10) 运行时 (bootstrap_node.js:389:7)

【问题讨论】:

您在 CURDATE 查询中缺少括号。应该是var q = 'SELECT CURTIME() as time, CURDATE() as date, NOW() as now'; 【参考方案1】:

我认为,问题在于不通过添加括号使 CURDATE 成为函数调用,这与@Jamie D 指出的相同

【讨论】:

以上是关于将 Node.js 与 MySQL 连接的问题的主要内容,如果未能解决你的问题,请参考以下文章

node.js 服务器是不是应该与 mysql 实例建立单一连接?

无法在 GitHub 操作中将 Node.js 与 Docker MySQL 数据库连接

其他通过html用node.js连接和显示mysql的方式

Node.js、discord.js 和 MySQL - ER_NO_SUCH_TABLE:表 'NAME' 不存在

与 RDS MySQL/Aurora 无服务器集群的 SSL 连接因 Node.js 失败

我们如何在服务器端使用 Node.js