为什么mysql连接不能使用dotenv变量
晚上好, 我一直在尝试使用dotenv变量连接到我的数据库。 在我使用它之前,它工作得很好 我有2个文件:1个文件mysqlConfig,我把我的数据库设置放在那里,还有.env,我把我的变量放在那里 我看不出我做错了什么:为什么mysql连接不能使用dotenv变量,sql,node.js,dotenv,Sql,Node.js,Dotenv,晚上好, 我一直在尝试使用dotenv变量连接到我的数据库。 在我使用它之前,它工作得很好 我有2个文件:1个文件mysqlConfig,我把我的数据库设置放在那里,还有.env,我把我的变量放在那里 我看不出我做错了什么: SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock' USER='root' PASSWORD='root' HOST='localhost' DATABASE='Groupomania' MysqlConfig: r
SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock'
USER='root'
PASSWORD='root'
HOST='localhost'
DATABASE='Groupomania'
MysqlConfig:
require('dotenv').config();
var mysql = require('mysql');
// Connexion à MYSQL
var bdd = mysql.createConnection({
socketPath : process.env.SOCKET_PATH,
user : process.env.USER,
password : process.env.PASSWORD,
host : process.env.HOST,
database : process.env.DATABASE
});
module.exports = bdd;
谢谢你的帮助
祝您晚上愉快可能是因为
dotenv
软件包找不到您的.env
文件
尝试打印任何变量,看看它是否未定义。如果是,我的假设是正确的
console.log(process.env['SOCKET_PATH'])
在这种情况下,您需要手动指定.env文件的相对路径。这可以通过向配置函数传递一个选项对象来完成,该对象包含以下属性路径:
const path = require('path')
require('dotenv').config({
path: path.resolve(__dirname, '../../.env')
})
这可能是因为
dotenv
包无法找到您的.env
文件
尝试打印任何变量,看看它是否未定义。如果是,我的假设是正确的
console.log(process.env['SOCKET_PATH'])
在这种情况下,您需要手动指定.env文件的相对路径。这可以通过向配置函数传递一个选项对象来完成,该对象包含以下属性路径:
const path = require('path')
require('dotenv').config({
path: path.resolve(__dirname, '../../.env')
})
好的,我刚发现问题 我对每个varibales使用控制台日志,直到我发现我的用户不是正确的用户。。。这是我的姓(我不知道为什么?) 我不知道变量用户是不是有点保留 不管怎么说,这种方式是有效的
SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock'
USERDB='root'
PASSWORD='root'
HOST='127.0.0.1'
DATABASE='Groupomania'
mysqlConfig
require('dotenv').config();
var mysql = require('mysql');
// Connexion à MYSQL
var bdd = mysql.createConnection({
socketPath : process.env.SOCKET_PATH,
user : process.env.USERDB,
password : process.env.PASSWORD,
host : process.env.HOST,
database : process.env.DATABASE
});
module.exports = bdd;
你的回答帮助很大,谢谢 好吧,我刚发现问题 我对每个varibales使用控制台日志,直到我发现我的用户不是正确的用户。。。这是我的姓(我不知道为什么?) 我不知道变量用户是不是有点保留 不管怎么说,这种方式是有效的
SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock'
USERDB='root'
PASSWORD='root'
HOST='127.0.0.1'
DATABASE='Groupomania'
mysqlConfig
require('dotenv').config();
var mysql = require('mysql');
// Connexion à MYSQL
var bdd = mysql.createConnection({
socketPath : process.env.SOCKET_PATH,
user : process.env.USERDB,
password : process.env.PASSWORD,
host : process.env.HOST,
database : process.env.DATABASE
});
module.exports = bdd;
你的回答帮助很大,谢谢
process.env
表示机器中的环境变量。它是一个列表,Nodejs总是从系统中获取变量值,如果它不存在,则作为回退查看您的.env文件配置。如果您尝试在终端中运行echo$USER
,它将打印与您以前遇到的值相同的值(假设您在linux机器上)。这就是你没有从你的.env文件中获取值的原因,因为它已经被声明了。process.env
表示你机器中的环境变量。它是一个列表,Nodejs总是从系统中获取变量值,如果它不存在,则作为回退查看您的.env文件配置。如果您尝试在终端中运行echo$USER
,它将打印与您以前遇到的值相同的值(假设您在linux机器上)。这就是为什么你没有从你的.env文件中获取值,因为它已经被声明了。