Warm tip: This article is reproduced from serverfault.com, please click

node.js-我无法使用process.env.variable连接到mysql数据库

(node.js - I can't connect to mysql database using process.env.variable)

发布于 2020-12-01 14:24:07

我的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!")
    }
})
Questioner
Ali Azlan
Viewed
0
Ali Azlan 2020-12-02 20:07:57

我的/config/config.env不在父目录中,因此

dotenv.config({ path: './config.env' });

dotenv.config({ path: __dirname + '/config.env' });