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

标签 node.js express openshift

我创建了node.js项目,其中包含express、angularjs和mongodb。 我如何将其部署到 Openshift 项目结构如下所示

我的 openshift 用户名是 admin 密码是X5900XJSLW4 数据库名称是:主题

现在这些都是假的,但它们看起来像这样。谢谢

这项工作在本地非常好,但我得到的服务暂时不可用@ 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';

最佳答案

To deploy an existing project into openshift you need to modify your package.json and server.json files:

<小时/>

package.json

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

    “主”:“服务器.js”, “脚本”:{ "start": "Node 服务器.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

  • 从 openshift 环境添加动态端口
  • 从 openshift 环境添加动态 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  );
    
    });
    

Now you can use the rhc --from-code flag to deploy a project from existing code

rhc app create appName nodejs-0.10 -s --from-code=https://github.com/username/app.git

更新

If you're using mongodb you need to update your server.js file

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;
}

希望这有帮助。

关于node.js - 如何在openshift中部署node.js应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516600/

相关文章:

openshift - 如何在 OpenShift 中创建部署配置?基于 docker 镜像的新应用程序是自动的吗?

node.js - 如何从nodejs打开 `cmd`窗口

javascript - 如何使用 hygen 生成模板后运行脚本?

node.js - Travis-CI Node.js 默认为 Ruby 构建?找不到 RakeFile

javascript - 监听 http 80 端口时出现 Node.js EACCES 错误(权限被拒绝)

javascript - 如何填充 twilio 传真结果数组并通过 express 发送?

kubernetes - Openshift-重命名路线

tomcat - 严重 : Error filterStart error on Openshift Tomcat 7

node.js - 使用 Node 的原生 mongodb 模块查询 Mongo DB 中的 bson 字段

node.js - 如何利用 Heroku 的 'postdeploy' 脚本在配置的 Heroku PostgreSQL 数据库中创建表?