2013-10-08 15 views
6

starałem się wdrożyć aplikację node.js do openshift jak w tym linku herenode.js Wdrożenie w openshift

Rozumiem, że ten kod

var http = require('http'); 

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

i nie ma problemu z systemem go lokalnie

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

Jednak jak to działa, gdy zatwierdzam tę aplikację w openshift? To jest bardzo prosty kod. Mam pobrany kod, który jest aplikacją czatu, a klient-serwer musi skonfigurować, aby nasłuchiwał na jakimś porcie (korzystałem z numeru portu 3000 w moim hoście lokalnym).

Działa na porcie numer 3000 w localhost, ale jak mogę go uruchomić w Openshift?

Odpowiedz

9

Musisz słuchać na porcie process.env.OPENSHIFT_NODEJS_PORT. Więc coś jak to powinno działać:

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

zobaczyć tutaj na przykład: Error: listen EACCES on Openshift app

+0

Hi Nitzan, próbowałem ten kod, ale nie wydają się działać. Teraz mówi "nie znaleziono pliku socket.io.js". Szukałem go i próbowałem różnych kodów, ale nic nie wydaje się działać. Wszystko działa dobrze lokalnie, ale kiedy przesłać ten sam kod w openshift, to nie działa. Głównie nie znajduje pliku socket.io.js. Nie wiem jak to rozwiązać. – jeewan

+0

Twój pierwotny problem został rozwiązany, masz teraz inny problem. Proponuję zaakceptować tę odpowiedź i otworzyć nowe pytanie dotyczące tego "nie znaleziono pliku socket.io.js". To inny problem, a osoby w przyszłości, które mogą go szukać, nie będą wyszukiwać według tytułu tego pytania. Da także innym ludziom szansę na odpowiedź. W tym nowym pytaniu zdecydowanie powinieneś uwzględnić strukturę katalogów i odpowiednie logi. Opisz problem lepiej: kto jest "tym" (w "teraz mówi ...") - klientem? serwer? coś innego? –

+0

Cześć Nitzan, przepraszam za to. Spieszyłem się dziś rano, aby odpowiedzieć na twoją odpowiedź i całkowicie zapomniałem przyjąć twoją odpowiedź. Przyjmuję twoją odpowiedź, dziękuję bardzo. Dużo szukałem i próbowałem żyć na serwerze Openshift, aby to naprawić, ale nie mogłem go rozwiązać. Później przeprowadzę więcej badań na ten temat. Przepraszam za to, akceptuję twoją odpowiedź i bardzo za to dziękuję. – jeewan

2

Hej problem z socket.io jest to, że masz zainstalowany pakiet npm lokalny, ale nie w openshift (Zależności nie dostać pchnięty). W tym celu możesz zalogować się przez ssh (poszukaj "Chcesz się zalogować do swojej aplikacji?" W prawym menu w panelu sterowania openshift, postępuj zgodnie z instructions i użyj dostarczonego połączenia ssh), a następnie zaloguj się na terminalu o Putty i przejdź do:

cd app-root/repo 

lub

cd $OPENSHIFT_REPO_DIR 

a następnie

npm install socket.io 

Użyłem że zainstalowanie mangusty i inne zależności, bez kłopotów. Również można użyć

node server.js 

z linii poleceń, aby uruchomić stronę;)

+1

Lub możesz edytować pakiet.json – mcbjam

+1

Po prostu 'npm install' po sprawdzeniu kodu z openshift i dostanie on wymagane pakiety (które są zdefiniowane w package.json) do ciebie lokalnie – Tapirboy