我已经安装了node-push-server。配置是从json加载的,如下所示:
{
"webPort": 8000,
"mongodbUrl": "mongodb://username:password@localhost/database",
"gcm": {
"apiKey": "YOUR_API_KEY_HERE"
},
"apn": {
"connection": {
"gateway": "gateway.sandbox.push.apple.com",
"cert": "/path/to/cert.pem",
"key": "/path/to/key.pem"
},
"feedback": {
"address": "feedback.sandbox.push.apple.com",
"cert": "/path/to/cert.pem",
"key": "/path/to/key.pem",
"interval": 43200,
"batchFeedback": true
}
}
}
如何在此json文件中为我的应用程序设置环境变量?
答案 0 :(得分:2)
我认为不可能。您应该能够在代码中更改所有这些设置。例如,在节点中,您可以执行:process.env.OPENSHIFT_VARIABLENAME
来读取环境变量。
来自docs的MongoDB连接字符串示例:
//provide a sensible default for local development
mongodb_connection_string = 'mongodb://127.0.0.1:27017/' + db_name;
//take advantage of openshift env vars when available:
if(process.env.OPENSHIFT_MONGODB_DB_URL){
mongodb_connection_string = process.env.OPENSHIFT_MONGODB_DB_URL + db_name;
}
作为替代方案,有一种快速简便的可部署装置,称为AeroGear Push,可满足您的需求。
答案 1 :(得分:1)
配置文件可能很尴尬,因为在源代码库中包含它们并不总是一个好的举动。
OpenShift部署主要由git push
驱动,因此有几个选项可帮助您正确解析服务器上的配置。
使用ENV vars配置服务是最常用的方法,但由于这需要平面文件,因此您需要找到一种方法来使用正确的值更新文件。
如果您知道需要哪些键和值,您应该能够编写更新示例json的脚本,或者合并两个json对象以生成包含字符node-pushserver
期望的平面配置文件。
看起来mongodbUrl
,webPort
,(和domain
?)需要填充OpenShift提供的值(如果可用)。 config-multipaas
也许可以提供帮助。
我可能implement the config bootstrapping / merging work as a build step,允许您准备配置文件并以常规方式启动node-pushserver