Heroku node.js - 没有这样的文件或目录,打开' .env'

时间:2016-07-06 00:01:26

标签: node.js heroku

我使用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'。

提前谢谢!

3 个答案:

答案 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。