每个服务器的NodeJSconfiguration
我有我们的第一个NodeJS服务器被部署到客户端服务器以及应用程序的其余部分。 我有几个项目需要在服务器特定的基础上configuration,但我无法find任何简单的方法来处理这个问题。
在谷歌search我已经find了一些select – 使用内置支持(太晚)的框架,build立一个可以加载的configuration文件(将工作,但我不想担心保持一个configuration文件为我们有每个服务器,并保持这些混帐)。
我很想让节点确定请求域是什么(dev.ourdomain vs www.ourdomain),只是做一个条件。 这听起来很简单,它可能很容易,但我无法find任何方式来确定域数据。
正如@drachenstern提到的,你可以使用request.headers.host,如下所示:
# get the path portion of the URI without optional port var domain=request.headers.host.replace(/\:\d+$/,'');
但是如果请求是使用IP地址而不是服务器的名字进行的,那么这不会提供规范的域名。
更好的select可能是使用服务器的主机名,如下所示:
var domain=process.env[ process.env['OS'] && process.env['OS'].match(/^Win/) ? 'HOSTNAME' : 'HOST' ];
你可能会考虑如果request.host有你需要的数据。 这很可能会。
你为什么不把这些信息硬编码到一个init.js文件中,然后为每个服务器改变呢? 你多久需要移动服务器来执行此操作? 只要做到这一点
init.js
module.exports = { domain: "dev.ourdomain"};
main.js
var domain = require( "init.js" ).domain;
我假设你正在dev.ourdomain上开发它,并在www.ourdomain上倾销它。 只要忽略转储init.js,以便服务器的init版本保持^ _ ^这就是我所做的,它使我无需为了一个命令而使用另一个模块来扩展项目。
希望这可以帮助那些遇到这种情况的人。