Bài 1 và 2: Hello World: Develop Node.js toàn tập

Bài 1 và 2: Hello World: Develop Node.js toàn tập

Bài 1: Hello World

Đây là bài tập đầu tiên sau khi cài đặt node.js vào Win7.

. Mở một folder mới C:\nodeDev

. Dùng editor viết 1 hàng code như dưới. Lưu dưới tên hello1.js trong folder C:\nodeDev

console.log('Hello World!'); 

Đây là bài tập đơn giản nhất. Viết dòng Hello World ra terminal (stdout) thử xem mình cài đặt node.js có được không. OK! Tại dấu prompt ở terminal mình gõ:

C:\nodeDev> node hello1.js
Hello World

Bài 2: Hello World lên trang web

Bài 2 này mình cũng viết dòng text Hello World nhưng thay vì ra terminal như bài 1, mình sẽ viết ra trang web..
. Vào folder nodeDev đã mở ở bài trên.
. Dùng editor viết những hàng codes như dưới. Lưu dưới tên hello2.js trong folder nodeDev

var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(80);

Đây là bài tập viết ra trang web đơn giản nhất. Tại dấu prompt của terminal:

C:\nodeDev> node hello2.js

Mình sẽ thấy ở terminal ngưng lại không có dấu prompt. Có nghĩa program node.js đang chạy ngay trên terminal. Mở một browser và đánh vào khung url: localhost và bấm Enter. Hàng chữ Hello World sẽ hiện lên trang.

Lưu ý: Nếu mình trở ngược lại terminal và gõ Ctrl-C để thoát ra dấu prompt, khi ấy mình ra ngoài browser đánh chữ localhost và Enter. dòng Hello World sẽ không hiện ra nữa. Lý do node.js không còn run hello2.js, có nghĩa webServer không run để nhận đồi hỏi từ browser.

Phân tích bài tập 2:

HTTP Server trong node.js: Thành lập và điều hành

Từ bài trước:

var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(80);
  • node.js có thể tự thành lập HTTP server
    Khác với những ngôn ngữ tiêu biểu như PHP hay .NET cần phải có sẵn một server để phục vụ browser như Apache hay ASP.NET chẳng hạn, node.js có thể tự làm. Bài tập hai là một thí dụ đơn giản cho việc thành lập HTTP server này.

  • Module http của node.js
    Dòng đầu tiên var http = require("http"); có nghĩa biến http là một instance của module http, một trong rất nhiều modules của node.js. Module http bao gồm những hàm (dụng cụ, thiết bị, linh kiện) cần thiết để tạo nên một http server mà createServer() là một trong những hàm đó.

  • createServer()
    Khi hàm này run như một instance, instance này có thể đèo theo một hàm mà chỉ chuyện lắng nghe (trong một port chỉ định nào đó listen(80), trong thí dụ này là port 80) xem có browser nào cần gì. Để ý đoạn code dưới hàm creatServer không có argument nào cả. Kiểu như chỉ ngóng nghe nhưng thụ động, bất lực không có khả năng thực hiện gì cả.

http.createServer().listen(80);
  • Arguments của hàm createServer
    Nếu một server mà chỉ listen thôi thì đâu hữu dụng gì, vì thế hàm này có thể chứa một argument mà argument này lại là một hàm dùng để điều động những công việc server phải làm. Trong thí dụ này hàm không có tên nên tạm được gọi hàm này là hàm phục vụ nhé.
http.createServer(function(request, response) {
   response.writeHead(200, {"Content-Type": "text/plain"});
   response.write("Hello World");
   response.end();
}).listen(80);

Hàm phục vụ có 2 arguments: request và response. request chứa dòng url từ browser, và response mang những gì hàm phục vụ thực hiện đến trang web. Trong trường hợp này chỉ là dòng Hello World.

Bài tập tuy đơn giản nhưng hàm chứa ý nghĩa của mối tương quan giữa browsers (người tiêu thụ, đòi hỏi) và servers (nguồn cung cấp). Ở đây người tiêu thụ đòi hỏi nguồn cung cấp một cái gì đó cũng được bằng cách dùng khung url của browser làm phương tiện chuyển thông. Để đáp ứng, nguồn cung cấp (program hello2.js) đem đến dòng Hello World. Từ căn bản này chúng ta có thể triển khai sự quan hệ này rộng rãi hơn cho những đòi hỏi và đáp ứng phức tạp hơn, vàthích thú hơn.

Các kiểu viết codes khác nhưng xử lý như nhau

Ngôn ngữ JavaScript là một trong những ngôn ngữ lập trình, cho đến thời điểm nay, có những điểm thích thú nhất. Thí dụ như hàm (function) có thể là một biến (variable). Hàm có thể được định nghĩa ngay tại chỗ, có thể được xử lý tức thì. Vi hàm có thể là biến nên hàm có thể là parameter của một hàm khác. Vân vân ...

Sau đây là những kiểu codes khác nhau của bài 2 nhưng xử lý y chang như nhau:

Nguyên thủy:

var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(80);

Định nghĩa phucvu:

var http = require("http");

var phucvu = function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
};
http.createServer(phucvu).listen(80);

. Nếu chỉ là text res.end cũng đủ:

var phucvu = function(req, res) {
    res.writeHead(200, {"Content-Type": "text/plain"});
    res.end("Hello World");
};
require("http").createServer(phucvu).listen(80);

. Một hàng không cần phải có dấu chấm phẩy ;; ngoặc đơn (single quotes) thay thế cho ngoặc kép (double quotes):

require('http').createServer(function(req, res){res.end('Hello World')}).listen(80)
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Tìm kiếm bất động sản

 

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 

Hướng dẫn tạo multi-step forms có sử dụng ctools multistep wizard

In the previous post I gave an example of Ctools modal API as being operated with a single form. In this one you'll be given an insight into my experiences with another powerful tool, namely Ctools multistep wizard as being used with or without the modal API involvement.

HTC Desire S Review

HTC Desire S Review

HTC recently introduced the newest member of its Desire series, the HTC Desire S. Actually it is the more affordable option for its cutting-edge predecessor, HTC Desire.

11 Thủ thuật tìm kiếm trên Google Search

11 Thủ thuật tìm kiếm trên Google Search

Tìm từ ngữ, trang web, tìm theo thời gian, loại tập tin, tính toán, hay thậm chí đổi đơn vị trên Google Search đều có "chiêu" cả!

Công ty diệt chuột T&C

 

Diet con trung