Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从不同文件夹执行node cli app时,dontenv(npm模块)未加载正确的.env文件_Node.js_Npm_Dotenv_Npm Link - Fatal编程技术网

Node.js 从不同文件夹执行node cli app时,dontenv(npm模块)未加载正确的.env文件

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();

我正在构建一个节点CLI应用程序,它使用dontenv加载一些环境变量以连接到mysql数据库

我曾经

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'})修复了它;
再次修复了它。