2016-04-09 3 views
0

Я создал проект node.js с помощью выражений и углов и mongodb. Как я развернуть его OpenShift структура проекта выглядеть следующим образомКак развернуть приложение node.js в openshift

имени Моего пользователя для OpenShift является админ пароль X5900XJSLW имя дб: тема

Теперь это просто подделка, но они выглядят как это. благодаря

ЭТО РАБОТА НА МЕСТЕ ОЧЕНЬ ВЫСОКОЕ, но я получаю Служба временно недоступна @ журнал http://topic-aggregator16.rhcloud.com/

ошибки нашел ее https://github.com/chihabSD/TopicAggregator/blob/master/images/errorlog.png

Я ДЕЙСТВИТЕЛЬНО НУЖНО ЭТО РАБОТАТЬ ASAP

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'; 
+0

Только часть подключения, я беспокоюсь, а не что-то еще, и ее работаю нормально –

+0

Я дождался подключения «порт 27017 и authnticate admin db, usin rhc tail, любая помощь –

+0

снова посмотрите @ код, Я только что включил раздел подключения, это действительно так долго. Спасибо заранее. Мое имя пользователя для openshift - это admin пароль - это X5900XJSLW Имя db: topic –

ответ

1

Чтобы развернуть существующий проект в openshift, вам необходимо изменить свой package.json и server.json файлов:


package.json

  • Добавить файл server.js в главного ключ
  • Добавить стартовый скрипт в сценариях ключ

    "главный": "server.js", "сценарии": { "старт": "узел 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": "[email protected]", 
     "license": "MIT" 
} 

сервер.JS

  • Добавить динамический порт из OpenShift окр
  • Добавить динамический IP от OpenShift окр

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

Теперь вы можете использовать флаг --from-код RHC для развертывания проекта из существующего кода

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

UPDATE

Если вы используете 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; 
} 

Надеется, что это помогает.

+0

, что у меня сейчас, я просто не понимаю идею позади openshift, его работала нормально локально, но я толкнул ее в openhift, но у меня не было сервиса или что-то в этом роде. –

+0

сервер сейчас, я слушаю его через порт 3000, я удаляю его, с кодом, который вы мне отправили, или оставить как его. –

+0

да, для s erver используйте код, который я написал. – atefth

0

В общем, OpenShift Online (V2) опубликует информацию о подключении к вашему приложению с использованием переменных окружения (https://developers.openshift.com/languages/nodejs/environment-variables.html#listen).

Ваш узел webservice должен использовать эту информацию для подключения к балансировщикам 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

НПХ модулей cloud-env или config-multipaas также может быть полезно, если вы предпочитаете придерживаться более простых, не зависящих от поставщика конфигурационных строк приложения (нормализованных к PORT и IP)

Смежные вопросы