2012-06-18 11 views
18

Jestem początkującym użytkownikiem node.js (infact rozpoczął się właśnie dzisiaj). Jedno z podstawowych pojęć nie jest dla mnie jasne, o co tutaj pytam, nie mogłem znaleźć na SO.sposób komunikacji między dwiema instancjami node.js, jednym klientem jeden serwer

Czytając kilka tutoriali w internecie napisałem stronie klienta & kodu po stronie serwera:

stronie serwera (powiedzmy server.js):

var http = require('http'); //require the 'http' module 

//create a server 
http.createServer(function (request, response) { 
    //function called when request is received 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    //send this response 
    response.end('Hello World\nMy first node.js app\n\n -Gopi Ramena'); 
}).listen(1337, '127.0.0.1'); 

console.log('Server running at http://127.0.0.1:1337/'); 

stronie klienta (say client.js):

var http=require('http'); 

//make the request object 
var request=http.request({ 
    'host': 'localhost', 
    'port': 80, 
    'path': '/', 
    'method': 'GET' 
}); 

//assign callbacks 
request.on('response', function(response) { 
    console.log('Response status code:'+response.statusCode); 

    response.on('data', function(data) { 
    console.log('Body: '+data); 
    }); 
}); 

Teraz, aby uruchomić serwer, wpisuję node server.js w terminalu lub polecenie cmd. & uruchamia się z powodzeniem loguje komunikat w konsoli & również wysyła odpowiedź po przejściu do 127.0.0.1:1337.

Ale, jak uruchomić klienta .js? Nie mogłem zrozumieć, jak uruchomić kod po stronie klienta.

+3

węzła nie jest po stronie serwera Strona klienta. Popatrz na to. http://stackoverflow.com/questions/5168451/javascript-require-on-client-side –

+2

Nie wiesz, gdzie znalazłeś plik client.js lub czego się spodziewasz, ale to nie jest coś, co możesz umieścić w przeglądarce. Jeśli przez klienta, masz na myśli inną aplikację Node.js, na pewno. Myślę, że samouczek był instrukcją, jak napisać serwer, który uzyskuje dostęp do zasobów HTTP na innych serwerach. – Brad

+0

Gdzie znalazłeś 'client.js'? Napisałeś to sam? Co chcesz z tym osiągnąć? – jsalonen

Odpowiedz

10

Krótka odpowiedź: można użyć polecenia

node client.js 

uruchomić swój kod „po stronie klienta”, to wyśle ​​jednego żądania HTTP

W odniesieniu do tego, co server side a co client side, to naprawdę zależy od kontekst.

Mimo że w większości przypadków client side oznacza kod działający w przeglądarce lub aplikacji na telefon komórkowy, oznacza to, że "serwer" lub "komputer z powrotem" oznacza przeglądarkę lub telefon komórkowy.

W twoim przypadku, myślę, że to nic więcej jak jedną „server” rozmów do innego „serwer”, a są one zarówno na tylnym końcu, gdyż to właśnie node.js jest przeznaczony dla

+0

ok, pozwól mi sprawdzić tę metodę. – gopi1410

+1

@ gopi1410 jak powiedział Larry, jeśli chcesz, aby twój client.js rozmawiał z twoim serwerem server.js, powinieneś zmienić port swojego klienta.js do 1337 – xvatar

+0

tak zmieniłem "host" na "127.0.0.1" i "port" na 1337, ale nadal, gdy uruchomię 'węzeł client.js', to nie pokazuje żadnego błędu, ale także nie wypisuje niczego w konsola. Nie powinno się wyświetlać kodu statusu odpowiedzi? – gopi1410

Powiązane problemy