【发布时间】:2020-11-20 23:35:39
【问题描述】:
我正在尝试通过创建一个池在我的 supermasters 表中插入一行-
const { createPool } = require('mysql');
const pool = createPool({
port: process.env.DB_PORT,
host: process.env.Host,
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: 'users',
connectionLimit: 8,
});
module.exports = pool;
我的 supermasters 表有这些列:--
username varchar(10) PK
password varchar(20)
fullname varchar(20)
email varchar(30)
phoneNumber varchar(10)
具体来说,我在创建连接的这部分代码中遇到错误:--
const pool = require('../../config/database');
module.exports = {
create: (data, callback) => {
const my_query = 'insert into supermasters(username,password,fullname,email,phoneNumber) values(?,?,?,?,?)';
pool.query(my_query, [data.username, data.password, data.fullname, data.email, data.phoneNumber], (error, results, fields) => {
if (error)
return callback(error);
else {
return callback(null, results);
}
})
}
}
我的错误是:--
Server running at port 3000
D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^
RangeError [ERR_OUT_OF_RANGE]: The value of "sourceStart" is out of range. It must be <= 9. Received 13
at _copy (buffer.js:240:11)
at Buffer.copy (buffer.js:768:12)
at Parser.parseBuffer (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:272:16)
at HandshakeInitializationPacket.parse (D:\web-development\elite\server\node_modules\mysql\lib\protocol\packets\HandshakeInitializationPacket.js:34:37)
at Protocol._parsePacket (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Protocol.js:272:12)
at Parser._parsePacket (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (D:\web-development\elite\server\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (D:\web-development\elite\server\node_modules\mysql\lib\Connection.js:526:10) {
code: 'ERR_OUT_OF_RANGE'
}
[nodemon] app crashed - waiting for file changes before starting...
【问题讨论】:
-
您的数据库表中是否有名称为“sourceStart”的字段?
-
您连接到哪个端口?该端口上正在运行什么?我猜它不是 mysql 或者在非 tls 端口上使用 TLS 或者可能是旧/不受支持的版本。
-
不,我没有任何字段名称“sourceStart”。我的服务器在 3000 端口上运行,数据库在 3306 上运行。