#mysql #node.js #database #configuration #dotenv
#mysql #node.js #База данных #конфигурация #dotenv
Вопрос:
мой файл 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, тогда я получу правильное значение переменной 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!")
}
})
Ответ №1:
мой /config/config.env не находится в родительской директории, поэтому вместо
dotenv.config({ path: './config.env' });
напишите
dotenv.config({ path: __dirname '/config.env' });