我用express、angularjs和mongodb创建了node.js项目。如何将其部署到Openshift项目结构如下所示
我的openshift的用户名是管理员密码是X5900XJSLW4数据库名称是: topic
现在这些都是假的,但它们看起来像这样。谢谢
这在本地工作得很好,但我得到的服务暂时不可用@ http://topic-aggregator16.rhcloud.com/
错误日志找到了她的https://github.com/chihabSD/TopicAggregator/blob/master/images/errorlog.png
我真的需要尽快解决这个问题
config.db.mongo = {};
config.web.port = process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || process.env.WEB_PORT || 8080;
config.web.ip = process.env.OPENSHIFT_NODEJS_IP || process.env.IP;
config.db.mongo.url = process.env.OPENSHIFT_MONGODB_DB_URL || 'mongodb://localhost/topic';发布于 2016-04-09 22:42:45
要将现有项目部署到openshift中,您需要修改package.json和server.json文件:
package.json
"main":"server.js",“脚本”:{ "start":"node server.js",}
示例
{
"name": "to-do",
"version": "1.0.0",
"description": "Simple todo app",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"node",
"angular"
],
"dependencies" : {
"express" : "~4.7.2",
"mongoose" : "~3.6.2",
"morgan" : "~1.2.2",
"body-parser": "~1.5.2",
"method-override": "~2.1.2"
},
"author": "atefth@gmail.com",
"license": "MIT"
}server.js
var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080;var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';app.listen( server_port,server_ip_address,function () { console.log( "Listening on“+ server_ip_address + ",server_port”+server_port );});
现在,您可以使用rhc -- from -code标志从现有代码部署项目
rhc app create appName nodejs-0.10 -s --from-code=https://github.com/username/app.git更新
如果你使用mongodb,你需要更新你的mongodb文件
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
config.db.mongo.url = connection_string;
}希望这能有所帮助。
发布于 2016-04-14 01:28:27
在openshift上部署nodejs时,我看到了这个YouTube视频系列:https://www.youtube.com/playlist?list=PLcdTDBNC_bSj1GG0_-K6R5_UgV9E3jBPZ
看一看。它可能会让你一步一步来。
发布于 2016-04-11 06:56:37
通常,OpenShift Online (V2)将使用环境变量(https://developers.openshift.com/languages/nodejs/environment-variables.html#listen)将连接信息发布到应用程序。
您的nodejs will服务将需要使用此信息连接到OpenShift的负载均衡器。
对于此示例代码,您需要更改
config.web.port = process.env.PORT || process.env.WEB_PORT || 3000;
config.web.ip = process.env.IP;至:
config.web.port = process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || process.env.WEB_PORT || 3000;
config.web.ip = process.env.OPENSHIFT_NODEJS_IP || process.env.IP;有关更多信息,请参阅https://developers.openshift.com/languages/nodejs/environment-variables.html#listen
如果您更喜欢使用更简单、与供应商无关的应用程序配置字符串(规范化为PORT和IP),Npm模块cloud-env或config-multipaas也会很有帮助。
https://stackoverflow.com/questions/36516600
复制相似问题