Node.js 从不同文件夹执行node cli app时,dontenv(npm模块)未加载正确的.env文件
我正在构建一个节点CLI应用程序,它使用dontenv加载一些环境变量以连接到mysql数据库 我曾经Node.js 从不同文件夹执行node cli app时,dontenv(npm模块)未加载正确的.env文件,node.js,npm,dotenv,npm-link,Node.js,Npm,Dotenv,Npm Link,我正在构建一个节点CLI应用程序,它使用dontenv加载一些环境变量以连接到mysql数据库 我曾经 npm链接 命令链接到全局并从任何位置运行CLI应用程序。 我面临的问题是,只有当我从.env所在的文件夹运行时,才会加载.env文件 然后,如果从不同的文件夹运行相同的命令。。。我得到了一个错误,这个错误是因为dontenv没有正确加载.env文件 顺便说一句,这就是我如何阅读.env无特别之处(据我所知) 在config.js中 require('dotenv').config();
npm链接
命令链接到全局并从任何位置运行CLI应用程序。
我面临的问题是,只有当我从.env所在的文件夹运行时,才会加载.env文件
然后,如果从不同的文件夹运行相同的命令。。。我得到了一个错误,这个错误是因为dontenv没有正确加载.env文件
顺便说一句,这就是我如何阅读.env无特别之处(据我所知)
在config.js中
require('dotenv').config();
let config = {};
config.MYSQL_HOST = process.env.MYSQL_HOST
config.MYSQL_DB_PROFILES = process.env.MYSQL_DB_PROFILES
config.MYSQL_USER = process.env.MYSQL_USER
config.MYSQL_PASS = process.env.MYSQL_PASS
config.AWS_PROFILE = process.env.AWS_PROFILE
module.exports = config;
然后,我有一个index.js(package.json中的主入口点),它调用一个process.js
const config = require('./config');
...
async function getProfileData(clientdb) {
let conn = mysql.createConnection({
host: config.MYSQL_HOST,
user: config.MYSQL_USER,
password: config.MYSQL_PASS,
database: config.MYSQL_DB_PROFILES
});
conn.connect();
这就是我的问题:((任何帮助都将不胜感激)我认为问题在于,当您从文件夹外运行应用程序时,它找不到所需的.env文件的路径。您应该尝试在配置文件中指定.env路径,如下所示:
require('dotenv').config({ path: '/full/path/to/your/env/file' })
看看这是否有助于解决问题。是您尝试的第二个目录中的
.env
文件吗?谢谢@Tuaev。几乎就在那里,问题就在那里。我用:.config({path:\u dirname+'\\.env'})修复了它;
再次修复了它。