如何在openshift中部署Node.js应用程序

0 node.js express openshift

我用express,angularjs和mongodb创建了node.js项目。我如何将其部署到Openshift项目结构看起来像这样

我的openshift用户名是admin密码是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';
Run Code Online (Sandbox Code Playgroud)

ate*_*fth 5

要将现有项目部署到openshift中,您需要修改 package.jsonserver.json文件:


package.json

  • 将server.js文件添加到
  • 脚本键中添加启动脚本

    “ main”:“ server.js”,“ scripts”:{“ start”:“节点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"
}
Run Code Online (Sandbox Code Playgroud)

server.js

  • 从openshift env添加动态端口
  • 从openshift env添加动态IP

    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  );
    
    });
    
    Run Code Online (Sandbox Code Playgroud)

现在,您可以使用rhc --from-code标志从现有代码部署项目

rhc app create appName nodejs-0.10 -s --from-code=https://github.com/username/app.git
Run Code Online (Sandbox Code Playgroud)

更新

如果您使用的是mongodb,则需要更新server.js文件

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;
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。