我使用node.js构建了一个应用程序并将其部署到heroku上,但我在heroku日志中不断收到错误:
{ [Error: ENOENT: no such file or directory, open '.env'] errno: -2, code: 'ENOENT', syscall: 'open', path: '.env' }
这意味着它缺少环境变量。但是,我确实在heroku / dashboard / config_vars中设置了我的环境变量。此外,如果我输入:heroku config
,它会显示我的环境变量列表...
有谁知道可能发生的事情或我能做些什么?
注意 - 我添加了' .env'到我的' .gitignore'。
提前谢谢!答案 0 :(得分:3)
在您的代码中某处,您正试图打开.env文件。
你不应该这样做。 要访问名为MY_ENV_VAR的环境变量,只需在node.js代码中引用process.env.MY_ENV_VAR即可。
将.env添加到.gitignore是正确的。
在开发环境中,您可以在.env中设置环境变量的值。这些将通过“heroku local”或“foreman start”传递给您的应用程序。
在Heroku上,您可以通过“heroku config”(或通过Heroku仪表板)设置环境变量的值,就像您一样。
结论:你所做的一切都是正确的,除了你的node.js应用程序似乎试图明确打开.env文件这一事实。那是一个错误!
答案 1 :(得分:1)
我遇到了同样的问题。我在这里如何解决:
npm rm dotenv
npm install -g foreman
npm install foreman --save
评论所有:
require('dotenv').load();
答案 2 :(得分:0)
另一个对我有用的选择是更新package.json中的dotenv。