mysql - 我无法使用 process.env.variable 连接到 mysql 数据库
问题描述
我的 config.env 文件
PORT=5000
DB_HOST='localhost'
DB_PORT=3306
DB_USER='root'
DB_PASSWORD='fast'
DB_NAME='hms'
我的 dbconnect 文件(与 config.env 文件位于同一目录中)我无法使用 process.env 进行连接,但如果我像在注释代码中那样直接键入值,那么它将连接到数据库。此外,如果我 console.log 的 process.env.anyvariable 值,那么我将获得 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' });
推荐阅读
- google-cloud-storage - google cloud gsutil cp ResumableUploadAbortException: 408 Upload Client Broken Connection 错误
- swift - 如何用 cocoapods 提取豆荚,然后在本地使用?
- pandas - Series.unique() 不显示所有唯一元素,但 list(Series.unique() ) 呢?
- html - 如何在中心对齐表格,但标签在输入的最左侧上方
- spring-boot - 覆盖 spring-boot 的默认错误处理程序
- ssl - 为什么 IISManager 绑定对话框会显示与“netsh http”命令不同的证书?
- python - 在 Python 中启用在 iframe=1 和 relative=parent 之间切换
- arrays - 获取特定格式的子字符串
- c++ - 使用 Visual Studio 代码运行简单的“Hello world”时遇到问题
- julia - 有没有办法使用 Julia 的 readdir() 来排序目录?