有人想出使用 Meteor.js 检测托管环境的语法或模式吗?我已经让 Heroku buildpacks 工作了,并且有一个开发/生产环境,但是对于如何让我的应用程序检测它在哪个环境中运行,我有点空白。
有没有办法让 node.js 检测它在哪个端口上运行?我希望可能有一些像 app.address().port 这样的低级别的东西,但这似乎不起作用......
编辑:这是对我有用的解决方案。请注意,以下需要在服务器上运行,因此需要将其包含在 server\server.js 或类似文件中。
if (Meteor.is_server) {
Meteor.startup(function () {
// we want to be able to inspect the root_url, so we know which environment we're in
console.log(JSON.stringify(process.env.ROOT_URL));
// in case we want to inspect other process environment variables
//console.log(JSON.stringify(process.env));
});
}
还创建了以下内容:
Meteor.methods({
getEnvironment: function(){
if(process.env.ROOT_URL == "http://localhost:3000"){
return "development";
}else{
return "staging";
}
}
});
这允许在客户端进行以下操作:
Meteor.call("getEnvironment", function (result) {
console.log("Your application is running in the " + result + "environment.");
});
谢谢拉胡尔!