更改基于URL的Express常量(例如localhost vs production)
我是相当新的节点和expression…
我有一个常量,我在我的Node / Express应用程序中设置为“域”。 当我在开发和生产之间切换时,我经常在localhost和实际的url之间切换。
我想弄清楚如何自动testing的URL,以便在服务器上读取代码(即实际的域名url vs本地主机),它设置适当的域名的url。
这是我的代码:
function define(name, value) { Object.defineProperty(exports, name, { value: value, enumerable: true }); } define("DOMAIN", "http://www.actual_domain.com"); // define("DOMAIN", "http://localhost:3000");
任何人都有一个简单的解决scheme呢?
谢谢!!
有很多解决scheme,但通常这是由环境variables完成的,取决于你的平台,但是在Linux系统中,你在你的shell中执行以下操作
export ENV_URL="http://www.example.com"
并确保其成功导出
echo $ENV_URL
并在你的代码你做的
const base_url = process.env.ENV_URL || "http://www.default.com";
在你的本地机器上,你将ENV_URL设置为localhost,或者你喜欢的任何东西,并且在你的服务器上你将它设置为你的实际URL。
或者你可以简单地有许多configuration文件,你可以通过environemntvariables来确定合适的configuration文件
export ENV=PROD
并在您的代码中,您可以加载包含您的环境configuration的prodconfiguration文件。
做这种事情的事实上的方式是通过环境variables。 看一看12factor.net是否有一些最佳实践,但是一般来说你想把环境variables放在环境variables中,然后在运行时读取这些variables。
- callback地狱,厄运金字塔,node.js
- 当mongoose模型被实例化时,应用程序变慢
- 如何更改mongoosedate时区?
- 如何用Nodejs和Multer发布图片?
- AngularJS $ http.delete和$ window.location.reload()
- JavaScript / Node.js:为什么原型.__ proto__ =原型,而不是新的
- 节点:从另一个js文件导入对象数组?
- 在process._tickCallback(node.js:419:13)处,NodeJs,500未能获得访问令牌(错误:连接ECONNREFUSED)
- 在NodeJS / ExpressJS中创buildHTTP请求