我的config.env文件
PORT=5000
DB_HOST='localhost'
DB_PORT=3306
DB_USER='root'
DB_PASSWORD='fast'
DB_NAME='hms'
我的dbconnect文件(与config.env文件位于同一目录中),我无法使用process.env进行连接,但是如果我像在注释代码中那样直接键入值,则它将连接到数据库。另外,如果我将process.env.anyvariable的console.log值设置为null,那么我将获得env变量的正确值,但是如果我将其分配给某些变量(例如假设const),variable=process.env.DB_HOST
则它将在console.log中未定义。这让我犯了这个错误
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlMessage: "Access denied for user ''@'localhost' (using password: NO)",
sqlState: '28000',
fatal: true
const mysql = require("mysql")
const dotenv = require("dotenv")
dotenv.config({ path: './config.env' });
const connection = mysql.createConnection({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
})
// const connection = mysql.createConnection({
// host: 'localhost',
// port: 3306,
// user: 'root',
// password: 'fast',
// database: 'hms'
// })
connection.connect( (err) => {
if (err){
console.log(err)
}
else
{
console.log("Database connected!")
}
})
我的/config/config.env不在父目录中,因此
dotenv.config({ path: './config.env' });
写
dotenv.config({ path: __dirname + '/config.env' });