MySQL Connection.状态为'undefined'

xxhby3vn  于 2023-08-02  发布在  Mysql
关注(0)|答案(1)|浏览(114)

我一直在跟踪这个Node.js, Express & MySQL full stack tutorial,但是连接请求的结果(connection.state的控制台日志)返回'undefined'到终端,而不是预期的'connected'。
有人能解释一下为什么会这样吗?为什么连接状态“undefined”似乎并不重要(因为对db的fetch调用仍然成功地返回所需的db表项)?Command:Sleep和State:None的客户端连接属性对返回的“未定义”连接状态有什么影响(如果有的话)?
db是我家庭网络(localhost:3306)中服务器上的MySQL的Windows示例。Express应用程序本地托管在同一家庭网络中的单独笔记本电脑上的5500上,并且使用mySQL2。因此,我将.env文件中的HOST更改为网络中服务器机器的IP,并确保两台机器上的端口都打开。应用程序已成功从后端获取表数据。我只是很想理解为什么“未定义”连接状态。
我在服务器机器上使用MySQL Workbench UI,这在客户端连接中显示,连接是从我的开发笔记本电脑建立的,但是如上所述,Workbench中显示的连接属性显示“命令”类型是“睡眠”,“状态”是“无”。

2mbi3lxu

2mbi3lxu1#

我有同样的问题,但我能够解决它。在本教程的前面,我使用了npm install mysql2而不是npm install mysql。所以我的dbService.js看起来像:

const mysql = require('mysql2');
const dotenv = require('dotenv');
dotenv.config();

const connection = mysql.createConnection({
    host: process.env.HOST,
    user: process.env.USER,
    password: process.env.PASSWORD,
    database: process.env.DATABASE,
    port: process.env.DB_PORT
});

connection.connect((err) => {
    if(err) {
        console.log(err.message);
    } else {
        console.log('db ' + connection.state);
    }
})

字符串
为了修复,请将第一行更改为:

const mysql = require('mysql');

相关问题