2012-06-18 33 views
18

Tôi là người mới bắt đầu trong node.js (bắt đầu được thực hiện ngay hôm nay). Một trong những khái niệm cơ bản là không rõ ràng với tôi, mà tôi yêu cầu ở đây & không thể tìm thấy trên SO.cách liên lạc giữa hai trường hợp node.js, một máy khách một máy chủ

Đọc một số hướng dẫn trên web tôi đã viết một phía khách hàng & một mã phía máy chủ:

Server side (nói 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/'); 

Khách hàng bên (nói 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); 
    }); 
}); 

Bây giờ, để chạy máy chủ, tôi nhập node server.js trong lời nhắc lệnh thiết bị đầu cuối hoặc cmd. & nó chạy thành công ghi nhật ký thư trong bảng điều khiển & cũng xuất ra phản hồi khi tôi duyệt đến 127.0.0.1:1337.

Nhưng, làm cách nào để chạy client.js? Tôi không thể hiểu cách chạy mã phía máy khách.

+3

Node là phía máy chủ không phía khách hàng. Hãy xem này. http://stackoverflow.com/questions/5168451/javascript-require-on-client-side –

+2

Không chắc chắn nơi bạn tìm thấy client.js hoặc những gì bạn mong đợi nó để làm, nhưng đó không phải là một cái gì đó bạn có thể đặt trong một trình duyệt. Nếu bằng ứng dụng khách, chắc chắn bạn có nghĩa là một ứng dụng Node.js khác. Tôi nghĩ rằng hướng dẫn bạn tìm thấy đã hướng dẫn bạn cách viết một máy chủ truy cập tài nguyên HTTP trên các máy chủ khác. – Brad

+0

Bạn tìm thấy 'client.js' ở đâu? Bạn đã tự viết nó chưa? Bạn đang cố gắng đạt được gì với điều đó? – jsalonen

Trả lời

10

Câu trả lời ngắn: bạn có thể sử dụng lệnh

node client.js 

để chạy "phía khách hàng" mã của bạn, nó sẽ gửi một http yêu cầu

Đối với những gì server side và những gì client side, nó thực sự phụ thuộc vào bối cảnh.

Mặc dù trong hầu hết các trường hợp, client side có nghĩa là mã đang chạy trên trình duyệt hoặc ứng dụng trên điện thoại di động của bạn, server side có nghĩa là "máy chủ" hoặc "giao diện người dùng" hoặc trình duyệt của bạn đang nói đến.

Trong trường hợp của bạn, tôi nghĩ rằng nó giống như một "máy chủ" cuộc đàm phán khác "máy chủ", và họ đều trở lại vào cuối, vì đó là những gì Node.js được thiết kế cho

+0

ok, hãy để tôi kiểm tra phương pháp này. – gopi1410

+1

@ gopi1410 như Larry đã nói, nếu bạn muốn client.js của bạn nói chuyện với server.js của bạn, bạn nên thay đổi cổng của khách hàng của bạn.js to 1337 – xvatar

+0

yup Tôi đã thay đổi 'host' thành '127.0.0.1' và 'port' thành 1337, nhưng vẫn còn khi tôi chạy 'node client.js', nó không hiển thị bất kỳ lỗi nào, nhưng nó cũng không xuất ra bất cứ thứ gì trong Bàn điều khiển. Không nên hiển thị mã trạng thái phản hồi ?? – gopi1410

Các vấn đề liên quan