Ví dụ writeHead và setHeader trong NodeJS

Ví dụ writeHead và setHeader trong NodeJS là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Ví dụ writeHead và setHeader trong NodeJS sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và NodeJS nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Ở bài trước mình có hướng dẫn tạo server NodeJS đơn giản và trong bài mình có sử dụng hàm writeHead để thêm các tham số vào header, vậy thì trong bài này mình sẽ giải thích kỹ hơn về hàm này và cách sử dụng nó. Và trước khi đọc bài này thì bạn phải hiểu Header Request và Header Response đã nhé.

1. Hàm response.writeHead trong NodeJS

Hàm response.writeHead dùng để thiết lập các tham số của header khi gửi kết quả về cho client, cú pháp của nó như sau:



  response.writeHead(statusCode, headerObject); 


Trong đó statusCode là mã code gồm 3 chữ số, đây là mã số quyết định trạng thái của request.

  • 100 Continue
  • 101 Switching Protocols
  • 2xx Success
  • 200 Ok
  • 201 Created
  • Xem thêm tại đây

Trong ví dụ này mình sử dụng mã code 200 để thông báo là thao tác thành công.



var http = require('http');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Thiết lập Header
    response.writeHead(200, {
        "Context-type" : "text/html"
    });
    response.end();
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
}); 


Chạy đoạn code này lên và sử dụng firebug bạn xem kết quả sẽ thấy các thông số như sau:

Mình đã sử dụng mã code 200 và thiết lập cho ba thông số Content-type, author, blog như phần bôi đỏ trong hình.

Bây giờ bạn đổi lại statusCode là 404 như sau:



 var http = require('http');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Thiết lập Header
    response.writeHead(404, {
        "Context-type"  : "text/html",
        "author"        : "hoidapcode.com@gmail.com",
        "blog"          : "hoidapcode.com"
    });
    response.end();
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
}); 


Thì trạng thái sẽ chuyển sang màu đỏ (404) thật là nguy hiểm:

2. Hàm response.setHeader trong NodeJS

Hàm này có chức năng tương tự như hàm response.writeHeader. Bạn sửa lại ví dụ trên như sau:


var http = require('http');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Thiết lập Header
    response.setHeader('Context-type', 'text/html');
    response.setHeader('author', 'hoidapcode.com@gmail.com');
    response.setHeader('blog', 'hoidapcode.com');
    response.writeHead(200, {});
    response.end();
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
}); 


Kết quả cũng như ví dụ ở phần 1.

3. Lưu ý khi thiết lập Header

Cũng như trong PHP vậy thôi, ban phải thiết lập header ở phía trên cùng của chương trình (phía trên code), nghĩa là nó phải được đặt trước các đoạn code như response.write(), response.end().

Khi nào thì sử dụng hai hàm trên? Câu trả lời tùy bạn thôi, bạn thích sử dụng hàm nào cũng được. Tuy nhiên có một lưu ý là vấn đề ghi đè, nghĩa là hàm response.writeHead sẽ ghi đè các tham số đã được thiết lập ở hàm response.setHeader nếu chúng trùng nhau.

Ví dụ: Ghi đè Hoidapcode.com thành https://Hoidapcode.com


var http = require('http');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Thiết lập Header
    response.setHeader('Context-type', 'text/html');
    response.setHeader('author', 'hoidapcode.com@gmail.com');
    response.setHeader('blog', 'hoidapcode.com

');
    response.writeHead(200, {
        "blog" : "https://hoidapcode.com"
    });
    response.end();
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
});


4. Lời kết

Như vậy là mình đã giới thiệu một số điểm quan trọng của hai hàm setHeader và writeHead trong NodeJS. Cá nhân mình thì thường sử dụng kết hợp cả hai hàm trên vì môi hàm có một lợi thế khác nhau.

Thực ra vấn đề này bạn cũng có thể tự tìm hiểu được nhưng mình muốn mọi thứ rõ ràng hơn nên mới viết bài này, qua bài này cũng sẽ đở mất nhiều thời gian giải thích hơn. Bài này mình kết thúc tại đây, chào hẹn gặp lại.

Hy vọng với bài viết về Ví dụ writeHead và setHeader trong NodeJS đã giải đáp giúp bạn phần nào về kiến thức lập trình NodeJS. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!