我对节点和表达相当新...
我在Node / Express应用程序中为“域”设置了一个常量。当我在开发和生产之间切换时,我经常在localhost和实际url之间切换。
我正在试图弄清楚如何自动测试URL,以便在服务器上读取代码(即实际域url vs localhost)时,它会设置正确的域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");
任何人都有一个简单的解决方案吗?
谢谢!
答案 0 :(得分:1)
有很多解决方案,但通常这是由环境变量完成的,取决于您的平台,但是,在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。
或者您可以只拥有许多配置文件,您可以通过environemnt变量确定适当的配置文件,如
export ENV=PROD
在您的代码中,您可以加载包含环境配置的prod配置文件。
答案 1 :(得分:0)
实现此类事情的事实上的方法是通过环境变量。查看12factor.net以获取最佳实践,但通常您希望将环境中的差异放入环境变量中,然后在运行时读取这些变量。