【问题标题】:Why is mysql connection not working with dotenv variables为什么mysql连接不适用于dotenv变量
【发布时间】:2020-09-11 02:03:58
【问题描述】:

晚上好,

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

我有 2 个文件:1 个文件 mysqlConfig,用于放置我的数据库设置,以及 .env 用于放置变量。

我看不出我在这里做错了什么:

SOCKET_PATH='/Applications/MAMP/tmp/mysql/mysql.sock'
USER='root'
PASSWORD='root'
HOST='localhost'
DATABASE='Groupomania'

Mysql 配置:

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;

感谢您的帮助

祝你有个愉快的夜晚

【问题讨论】:

    标签: sql node.js dotenv


    【解决方案1】:

    这可能是因为dotenv 包无法找到您的.env 文件。

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

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

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

    const path = require('path')
    require('dotenv').config({ 
       path: path.resolve(__dirname, '../../.env') 
    })
    

    【讨论】:

      【解决方案2】:

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

      我对每个变量都使用了控制台日志,但我发现我的 USER 不是正确的...这是我的姓(我不知道为什么?)

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

      不管怎样,这样就行了……

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

      mysql配置

      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 文件中获得价值的原因,因为它已经被声明了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2017-09-28
      • 1970-01-01
      相关资源
      最近更新 更多