为什么mysql连接不能与dotenv变量一起使用

问题描述

晚上好

我一直在尝试使用dotenv变量连接到我的数据库。 在我使用它之前,它工作得很好。

我有2个文件:1个文件MysqLConfig,我在其中放置我的数据库设置,.env我在其中放置变量。

在这里看不到我在做错什么:

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;

感谢您的帮助

晚上愉快

解决方法

可能是因为 return config.getTracer(); } 软件包无法找到您的dotenv文件。

尝试打印任何变量,然后查看是否未定义。如果是这样,我的假设是正确的。

.env

在这种情况下,您需要手动指定.env文件的相对路径。可以通过将一个选项对象传递到包含属性路径的config函数来完成:

console.log(process.env['SOCKET_PATH'])
,

好,我刚刚发现了问题...

我为每个变量使用控制台日志,直到我发现我的用户名不正确...这是我的姓氏(我不知道为什么)

我不知道变量USER是保留类型吗?

无论如何,通过这种方式...

if configuration_item['resource_type'] != 'AWS::RDS::DBSecurityGroup':
  return 'NOT_APPLICABLE'

mysqlConfig

SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock'
USERDB='root'
PASSWORD='root'
HOST='127.0.0.1'
DATABASE='Groupomania'

您的回答很有帮助,谢谢!!