我希望我的代码在我的本地主机和服务器上运行测试。在heroku中有一个GUI可以做到这一点,但是我如何在本地设置这些呢?
snvhrwxg1#
有几种方法可以在运行程序之前设置环境变量。您可以在启动它的同时执行此操作:
ENV=test ./start-server
或在同一shell会话中:
export ENV=test ./start-server
nbewdwxp2#
我的首选解决方案是使用名为dotenv的npm包。如果您在应用程序的入口点中需要它,它将读入.env文件中的任何值,并通过process. env将它们提供给Node / Express应用程序。现在您可以在各种环境中创建必要的.env文件。您不需要处理向npm脚本传递一堆参数的问题。当然,如果您的.env文件中有密码或API密钥,请确保将.env添加到.gitignore文件#captainobvious
5f0d552i3#
如果你在本地使用nodemon(为什么没有人使用nodemon呢?)你可以在你的项目的根目录下放置一个名为nodemon.json的文件。它将使文件中的变量对你的进程env vars可用。nodemon.json
{ "env": { "MSSQL_DATABASE": "MySqlDb", "MSSQL_USER": "MySqlUser", "MSSQL_PASSWORD": "MySqlPassword" } }
app.js
const database = process.env.MSSQL_DATABASE; const username = process.env.MSSQL_USER; const password = process.env.MSSQL_PASSWORD;
当然,您应该将nodemon.json添加到您的.gitignore文件中,特别是当它包含敏感信息时。
3条答案
按热度按时间snvhrwxg1#
有几种方法可以在运行程序之前设置环境变量。
您可以在启动它的同时执行此操作:
或在同一shell会话中:
nbewdwxp2#
我的首选解决方案是使用名为dotenv的npm包。如果您在应用程序的入口点中需要它,它将读入.env文件中的任何值,并通过process. env将它们提供给Node / Express应用程序。现在您可以在各种环境中创建必要的.env文件。您不需要处理向npm脚本传递一堆参数的问题。当然,如果您的.env文件中有密码或API密钥,请确保将.env添加到.gitignore文件#captainobvious
5f0d552i3#
如果你在本地使用nodemon(为什么没有人使用nodemon呢?)你可以在你的项目的根目录下放置一个名为nodemon.json的文件。它将使文件中的变量对你的进程env vars可用。
nodemon.json
app.js
当然,您应该将nodemon.json添加到您的.gitignore文件中,特别是当它包含敏感信息时。