Heroku本地应用程序不读取我的.env文件。

5
我尝试了在heroku节点示例: https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction 并且将Postgres用作数据库,所有的工作都正常。
现在我想在本地运行它,所以我使用了来自以下网址的示例: https://devcenter.heroku.com/articles/heroku-local 为了将DATABASE_URL转移到我的.env文件中,但是即使当我运行Heroku local时它显示时也无法使其工作:
[OKAY] Loaded ENV .env File as KEY=VALUE Format

数据库仍未连接,当我添加以下内容时:
```php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); ```
我收到了MySQL错误消息:“没有这样的主机名”。这表明数据库配置中的主机名无效。请检查您的数据库配置并确保主机名正确。
 console.log(process.env.DATABASE_URL);

它向控制台写入了未定义的值。


在遇到此问题后,我创建了一个简短的博客文章来介绍如何解决它:https://www.jtrocinski.com/posts/Heroku-Running_a_Python_App_Locally.html - Jacek Trociński
2个回答

8

结果发现我的.env文件因为某种原因没有使用正确的Unicode编码。

我怀疑是以下命令导致了这个问题:

heroku config:get DATABASE_URL -s  >.env

在我的Windows机器上创建了一个无效的.env文件。它使用UTF-16 LE编码创建文件。一旦我将其更改为UTF-8,所有内容都正常工作。您可以通过单击状态栏中的编码,在VSCODE中进行更改。enter image description here

当我看到你的问题和答案时,我感到非常兴奋,因为我在一个React应用程序中也遇到了同样的问题。不幸的是,我的问题似乎有所不同,因为文件是UTF-8编码的。我的.env文件可以在Heroku示例项目中正常工作,但在我的项目中却无法正常工作。@noam,你有什么想法吗? - MobileVet
@MobileVet 重命名.env文件 - 并创建自己的.env文件,将Heroku创建的文本复制到您创建的文件中。此外 - 实际上我不使用Heroku在本地提供服务,而是使用一个名为“dotenv”的npm包来读取.env文件。 - Noam
优秀的发现。 - Karl
这也解决了我的问题。我发现在VS Code中使用Git Bash作为默认终端是最好的选择,以避免这些错误。 - Jacek Trociński

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接