Tại sao Node? (tiếp tục)
Trong ảnh dưới, một yêu cầu HTTP mới đã được nhận và duyệt bởi module http của Node (1). Code ứng dụng của
máy chủ ad sau đó thực hiện một truy vấn CSDL, sử dụng một API không đồng bộ – một callback được truyền tới
CSDL đọc hàm (2). Trong khi Node chờ cho cái này hoàn thành, máy chủ ad có thể đọc một file mẫu từ ổ cứng (3).
Mẫu này sẽ được sử dụng để hiển thị một trang web phù hợp. Một khi yêu cầu CSDL đã hoàn thành, các kết quả
mẫu và CSDL được sử dụng để duyệt trả lời (4).
Trong khi cái này đang xảy ra, các yêu cầu khác cũng có thể đến máy chủ ad, và chúng sẽ được xử lí dựa trên các
tài nguyên có sẵn (5). Không phải nghĩ về các threads khi phát triển máy chủ ad, bạn có thể đẩy Node tới các tài
nguyên I/O của máy chủ rất hiệu quả, chỉ bằng sử dụng các kĩ thuật lập trình Javascript tiêu chuẩn.
Các kịch bản khác nơi Node ưu việt là các web APIs và web scraping. Nếu bạn đang download và rút nội dung từ các
trang web, thì Node là hoàn hảo vì nó thể được nói vào mô phỏng DOM và Javascript phía máy khách đang chạy. Lại một
lần nữa, Node có một lợi ích hiệu suất ở đây, vì các scrapers và web spiders là chịu phí tổn về mặt mạng và file I/O.
Nếu bạn đang sản xuất hay tiêu thụ các JSON APIs, Node là một lựa chọn tuyệt vời vì nó làm làm việc với các objects
Javascript dễ dàng. Các khung web của Node (như Express, http://expressjs.com) làm tạo các JSON APIs nhanh và thân thiện.
Node không hạn chế tới phát triển web. Bạn có thể tạo bất cứ loại máy chủ TCP/IP nào bạn thích. Ví dụ, một máy chủ game
mạng cái truyền rộng trạng thái của game tới những người chơi khác nhau trên các sockets TCP/IP có thể thực hiện các
nhiệm vụ nền, có thể duy trì thế giới game, trong khi nó gửi dữ liệu tới những người chơi.