Thứ Sáu, 16 tháng 8, 2013

Nhập môn Nodejs - Events

Phần 2: Events

1. Event trong DOM
Thông thường DOM trigger các events, bạn có thể lắng nghe và xử lý các events đó.
$('p').on('click', function() {
   alert('Clicked!');
});
p sẽ trigger click event khi có hành động click lên p, chúng ta nhận trigger đó và thực hiện alert Clicked!.
2. Event trong Node
Có rất nhiều đối tượng trong Node phát ra (emit) các events.
EventsNodejs
Ta có thể thấy trên hình, đối tượng net.Server sẽ emit 1 request event thông qua EventEmitter.
Hãy xem qua 1 chút tài liệu về đối tượng HTTP trên website Nodejs.org

http.createServer([requestListener])

return a new web server object.
The requestListener is a function which is automatically added to the 'request' event.

Class: http.server

This is an EventEmitter with the following events:

Event: "request"

function (request, response) { }
Emitted each time there is a request.
Theo đó, chúng ta có thể tạo server thông qua module http. Khi server được tạo sẽ tự động emit 1 request event. Event listener nhận 2 tham số là request và response:
var server = http.createServer();
server.on('request', function(request, response) {
   // Our code
});
function(request, response) { //.... } được attach đến đối tượng net.Server khi nó emit 1 request event. Bằng cách này, chúng ta có thể xử lý các thông tin từ client gửi đến thông qua tham số request trong callback và hồi đáp thông tin cần thiết cho client thông qua tham số response. Event close sẽ được emit khi server closes.
server.on('close', function() { ... });
Cách viết ngắn gọn hơn:
http.createServer(function(request, response) {
   // Our code
});
Các bạn có thể xem lại ví dụ về cách tạo server thông qua module http ở Phần 1. Phần tiếp theo chúng ta sẽ tìm hiểu Streaming trên Nodejs và viết ứng dụng upload 1 file lên server Nodejs.

Không có nhận xét nào:

Đăng nhận xét