2013-10-08 2 views
6

Я пытался развернуть приложение Node.js к OpenShift как в этой ссылке hereNode.js Развертывание в OpenShift

Я понимаю, этот код

var http = require('http'); 

var server = http.createServer(function(req, res) { 
    res.writeHead(200); 
    res.end('Hello Http'); 
}); 
server.listen(3000); 

и нет никакой проблемы работает локально

$ node server.js // saved as server.js 

Однако, как это работает, когда я совершаю это приложение в режиме спуска? Это очень простой код. У меня есть загруженный код, который является чат-приложением, а клиент-серверу нужно настроить прослушивание на каком-то порту (я использовал номер порта 3000 в своем локальном хосте).

Он работает с номером порта 3000 в локальном хосте, но как я могу заставить его работать в Openshift?

ответ

9

Вам необходимо прослушать порт process.env.OPENSHIFT_NODEJS_PORT. Так что-то подобное должно работать:

server.listen(process.env.OPENSHIFT_NODEJS_PORT || 3000); 

Смотрите здесь, например: Error: listen EACCES on Openshift app

+0

Привет Nitzan, я попробовал этот код, но не похоже на работу. Теперь он говорит: «socket.io.js не найден». Я обдумал это и попробовал несколько разных кодов, но ничего не работает. Все работает нормально локально, но когда я загружаю тот же код в openshift, он не работает. В основном, он не находит файл socket.io.js. Я не знаю, как его решить. – jeewan

+0

Ваша оригинальная проблема решена, теперь вы столкнулись с другой проблемой. Я предлагаю вам принять этот ответ и открыть новый вопрос о том, что «socket.io.js не найден». Это другая проблема, и люди в будущем, которые могут ее искать, не будут искать по названию этого вопроса. Это также даст другим людям возможность ответить. В этом новом вопросе вы должны обязательно включить структуру каталогов и соответствующие журналы. Опишите проблему лучше: кто «это» (в «это сейчас говорит ...») - клиент? сервер? что-то другое? –

+0

Привет, Ницан, извините за это. Сегодня утром я спешил ответить на ваш ответ и полностью забыл принять ваш ответ. Я принимаю ваш ответ, большое вам спасибо. Я много искал и пытался жить на сервере Openshift, чтобы исправить его, но не смог его решить. Сегодня я сделаю еще несколько исследований. Извините, я принимаю ваш ответ и благодарю вас за это. – jeewan

2

Эй проблема с Socket.io является то, что у вас есть, что НПЙ пакет установлен локальный, а не в OpenShift (зависимости не получить толкнул). Для этого вы можете войти в систему через ssh (искать «Хотите войти в свое приложение?» В правом меню в панели управления с открывающейся ветвью, следовать instructions и использовать предоставленное соединение ssh), затем войти в систему с терминалом o Putty и перейти к:

cd app-root/repo 

или

cd $OPENSHIFT_REPO_DIR 

, а затем

npm install socket.io 

Я использовал, что для установки мангуста и других зависимостей без проблем. Также вы можете использовать

node server.js 

из командной строки для запуска сайта;)

+1

Или вы можете отредактировать файл package.json – mcbjam

+1

Просто «npm install» после проверки кода из openshift и он получит необходимые пакеты (которые определены в package.json) для вас локально – Tapirboy

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