const express = require('express')
const app = express()
// const mysql = require('mysql')
const mysql = require('./db')()
const cors = require('cors')
require('dotenv').config();
const port = process.env.PORT || 5000
app.use(express.json())
app.use(cors())
app.listen(port, () => console.log(`${port}`))
app.get('/', (req, res) => {
res.send("hi")
})
const connection = mysql.init()
mysql.open(connection)这是我的server.js代码。
const mysql = require('mysql')
require('dotenv').config();
module.exports = function() {
return {
init: function () {
return mysql.createConnection({
host: process.env.HOST,
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.DATABASE,
port: process.env.PORT
})
},
open: function(con) {
con.connect(function(err) {
// if (err) throw err
// console.log('Connected!')
if(err) {
console.log('mysql connection error: '+err)
} else {
console.log('mysql is connected successfully.')
}
})
}
}
}这是我的db.js代码..。
我希望在执行此代码时打印端口号和消息"mysql已成功连接“。但是当我运行它时,除了端口号之外,没有任何输出。甚至是错误信息。
因此,我无法验证数据库连接是否正确。为什么未执行connect()函数的内容?

发布于 2022-09-11 04:42:11
您对服务器端口和数据库端口使用了相同的环境变量。请将数据库端口的变量名PORT更改为.env文件中的DB_PORT。然后更改db.js文件的数据库端口中的环境变量名。
db.js
const mysql = require("mysql");
require("dotenv").config();
module.exports = function () {
return {
init: function () {
return mysql.createConnection({
host: process.env.HOST,
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.DATABASE,
port: process.env.DB_PORT,
});
},
open: function (con) {
con.connect(function (err) {
// if (err) throw err
// console.log('Connected!')
if (err) {
console.log("mysql connection error: " + err);
} else {
console.log("mysql is connected successfully.");
}
});
},
};
};example .env file
PORT=8080
HOST=localhost
USER=root
PASSWORD=root
DATABASE=dbname
DB_PORT=3306https://stackoverflow.com/questions/73676363
复制相似问题