Điện thoại/ Zalo
0389934723
Bài 9: Khởi tạo server Node.js với HTTP module
Ở các bài trước chúng ta đã được học cơ bản qua về nodejs rồi, nhưng đó mới chỉ là trên cmd, chắc hẳn các bạn cũng cảm thấy chán lắm rồi đúng không? Bài này chúng ta sẽ tìm hiểu và khởi tạo một con server bằng nodejs trên máy của chúng ta.
1, HTTP Module là gì?
-Chỉ cần nghe qua cái tên thì chắc hẳn các bạn cũng đã hiểu được một phần về nhiệm vụ của module này là gì đúng không? HTTP là một module được tích hợp sẵn vào trong Node.js (nên sẽ không cần phải download), module này có nhiệm vụ khởi tạo một cổng kết nối HTTP server trả về client.
2, Khởi tạo server với HTTP module.
-Để sử dụng được bất kỳ module nào trong Node.js thì chúng ta cần phải require module đó. Và để require một module trong Node.js chúng ta sử dụng từ khóa require
.
VD: require module http.
var http = require('http');
-Tiếp đó để khởi tạo server trong HTTP module chúng ta sử dụng 2 phương thức createServer().listen().
VD: khởi tạo một con server chạy port 8000.
var http = require('http');
http.createServer().listen(8000);
-Bên trong phương thức createServer chứa một phương thức ẩn danh có 2 tham số truyền vào.
- Tham số thứ nhất: là biến chứa các thông số liên quan đến
request
mà người dùng gửi lên. - Tham số thứ hai là biến chứa các thông số liên quan đến
response
mà chúng ta muốn trả về client.
3, Ví dụ.
-Sau khi đã biết được các lý thuyết liên quan đến HTTP module rồi thì giờ chúng ta cùng thử khởi tạo một con server helloword đơn giản xem thế nào nhé!
Đầu tiên mình sẽ tạo một tệp tin index.js trong thư mục node-tutorial (các bạn lưu ở đâu cũng đc nhé) có nội dung như sau:
// khai báo sử dụng module HTTP
var http = require('http');
//Khởi tạo server chạy cổng 8000
http.createServer(function (request, response) {
//thiết lập giá trị server trả về
response.write('hello world! toidicode.com');
response.end();
}).listen(8000);
Tiếp đó các bạn chỉ cần run file index.js lên (ai không biết run xem lại).
node index.js
Sau đó các bạn mở trình duyệt lên và truy cập 1 trong 2 link sau:
4, Các phương thức và thuộc tính hay dùng trong resquest và response.
writeHead()
-Hàm writeHead()
thiết lập kiểu dữ liệu mà server muốn trả về.
VD: Thiết lập server trả về là một trang HTML.
// khai báo sử dụng module HTTP
var http = require('http');
//Khởi tạo server chạy cổng 8000
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('Hello world');
response.end();
}).listen(8000);
write()
-Hàm này thiết lập nội dung mà server muốn trả về trình duyệt, nội dung này có thể là text có thể là HTML code.
VD: Trả về một trang HTML có thẻ H1 chứa dòng chữ hello world.
// khai báo sử dụng module HTTP
var http = require('http');
//Khởi tạo server chạy cổng 8000
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('');
response.write('');
response.write('Hello world ');
response.write('');
response.write(' Hello world ');
response.write('');
response.end();
}).listen(8000);
url
-Thuộc tính này chứa các paramter trong URL mà client gửi lên server.
VD:
// khai báo sử dụng module HTTP
var http = require('http');
//Khởi tạo server chạy cổng 8000
http.createServer(function (request, response) {
var param = request.url;
response.write(param);
response.end();
}).listen(8000);
Lúc này các tiền tố phía sau domain sẽ được hiện ra nếu có: vd http://localhost:8000/toidicode thì url sẽ là /toidicode.
5, Lời kết.
-Phía trên là đôi chút cơ bản về HTTP module trong node.js mà mình muốn giới thiệu với mọi người, ngoài ra các bạn có thể xem thêm tại đây. Các bạn cố gắng nhớ cho mình phần này, vì các phần sau sẽ phải cần đến nó!.