Để truy cập các trang web của bất kỳ ứng dụng web nào, bạn cần có máy chủ web. Máy chủ web sẽ xử lý tất cả các yêu cầu http cho ứng dụng web e. g IIS là một máy chủ web cho ASP. NET và Apache là một máy chủ web cho các ứng dụng web PHP hoặc Java
Nút. js cung cấp các khả năng để tạo máy chủ web của riêng bạn, máy chủ này sẽ xử lý các yêu cầu HTTP không đồng bộ. Bạn có thể sử dụng IIS hoặc Apache để chạy Node. js nhưng nên sử dụng Node. máy chủ web js
Tạo nút. máy chủ web js
Nút. js giúp dễ dàng tạo một máy chủ web đơn giản xử lý các yêu cầu gửi đến một cách không đồng bộ
Ví dụ sau đây là một Node đơn giản. máy chủ web js chứa trong máy chủ. tập tin js
người phục vụ. js
Sao chépvar http = require['http']; // 1 - Import Node.js core module
var server = http.createServer[function [req, res] { // 2 - creating server
//handle incomming requests here..
}];
server.listen[5000]; //3 - listen for any incoming requests
console.log['Node.js web server at port 5000 is running..']
Trong ví dụ trên, chúng tôi nhập mô-đun http bằng hàm require[]. Mô-đun http là mô-đun cốt lõi của Node. js, vì vậy không cần cài đặt nó bằng NPM. Bước tiếp theo là gọi phương thức createServer[] của http và chỉ định chức năng gọi lại với tham số yêu cầu và phản hồi. Cuối cùng, gọi phương thức listen[] của đối tượng máy chủ được trả về từ phương thức createServer[] với số cổng, để bắt đầu lắng nghe các yêu cầu đến trên cổng 5000. Bạn có thể chỉ định bất kỳ cổng không sử dụng nào tại đây
Chạy máy chủ web trên bằng cách viết lệnh node server.js
trong dấu nhắc lệnh hoặc cửa sổ đầu cuối và nó sẽ hiển thị thông báo như hình bên dưới
Nút. máy chủ web js tại cổng 5000 đang chạy
Đây là cách bạn tạo một Nút. máy chủ web js bằng các bước đơn giản. Bây giờ, hãy xem cách xử lý yêu cầu HTTP và gửi phản hồi trong Node. máy chủ web js
Xử lý yêu cầu HTTP
http. phương thức createServer[] bao gồm các tham số yêu cầu và phản hồi được cung cấp bởi Node. js. Đối tượng yêu cầu có thể được sử dụng để lấy thông tin về yêu cầu HTTP hiện tại. g. , url, tiêu đề yêu cầu và dữ liệu. Đối tượng phản hồi có thể được sử dụng để gửi phản hồi cho yêu cầu HTTP hiện tại
Ví dụ sau minh họa việc xử lý yêu cầu và phản hồi HTTP trong Node. js
người phục vụ. js
Sao chépvar http = require['http']; // Import Node.js core module
var server = http.createServer[function [req, res] { //create web server
if [req.url == '/'] { //check the URL of the current request
// set response header
res.writeHead[200, { 'Content-Type': 'text/html' }];
// set response content
res.write['This is home Page.
'];
res.end[];
}
else if [req.url == "/student"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is student Page.
'];
res.end[];
}
else if [req.url == "/admin"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is admin Page.
'];
res.end[];
}
else
res.end['Invalid Request!'];
}];
server.listen[5000]; //6 - listen for any incoming requests
console.log['Node.js web server at port 5000 is running..']
Trong ví dụ trên, yêu cầu. url được sử dụng để kiểm tra url của yêu cầu hiện tại và dựa vào đó nó sẽ gửi phản hồi. Để gửi phản hồi, trước tiên, nó đặt tiêu đề phản hồi bằng phương thức writeHead[] và sau đó viết một chuỗi dưới dạng nội dung phản hồi bằng phương thức write[]. Cuối cùng, nút. máy chủ web js gửi phản hồi bằng phương thức end[]
Bây giờ, hãy chạy máy chủ web ở trên như hình bên dưới
C. \> máy chủ nút. jsNút. máy chủ web js tại cổng 5000 đang chạy.
Để kiểm tra, bạn có thể sử dụng chương trình dòng lệnh curl mà hầu hết các máy Mac và Linux đều cài đặt sẵn
Nút. js có một mô-đun tích hợp có tên là HTTP, cho phép Node. js để truyền dữ liệu qua Giao thức truyền siêu văn bản [HTTP]. Mô-đun HTTP có thể tạo một máy chủ HTTP lắng nghe các cổng của máy chủ và gửi phản hồi lại cho máy khách
Thí dụ
// Import the Node.js http module
var
http = require[
'http'
];
________số 8
// req is the request object which is
var http = require['http']; // Import Node.js core module
var server = http.createServer[function [req, res] { //create web server
if [req.url == '/'] { //check the URL of the current request
// set response header
res.writeHead[200, { 'Content-Type': 'text/html' }];
// set response content
res.write['This is home Page.
'];
res.end[];
}
else if [req.url == "/student"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is student Page.
'];
res.end[];
}
else if [req.url == "/admin"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is admin Page.
'];
res.end[];
}
else
res.end['Invalid Request!'];
}];
server.listen[5000]; //6 - listen for any incoming requests
console.log['Node.js web server at port 5000 is running..']
0var http = require['http']; // Import Node.js core module
var server = http.createServer[function [req, res] { //create web server
if [req.url == '/'] { //check the URL of the current request
// set response header
res.writeHead[200, { 'Content-Type': 'text/html' }];
// set response content
res.write['This is home Page.
'];
res.end[];
}
else if [req.url == "/student"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is student Page.
'];
res.end[];
}
else if [req.url == "/admin"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is admin Page.
'];
res.end[];
}
else
res.end['Invalid Request!'];
}];
server.listen[5000]; //6 - listen for any incoming requests
console.log['Node.js web server at port 5000 is running..']
1var http = require['http']; // Import Node.js core module
var server = http.createServer[function [req, res] { //create web server
if [req.url == '/'] { //check the URL of the current request
// set response header
res.writeHead[200, { 'Content-Type': 'text/html' }];
// set response content
res.write['This is home Page.
'];
res.end[];
}
else if [req.url == "/student"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is student Page.
'];
res.end[];
}
else if [req.url == "/admin"] {
res.writeHead[200, { 'Content-Type': 'text/html' }];
res.write['This is admin Page.
'];
res.end[];
}
else
res.end['Invalid Request!'];
}];
server.listen[5000]; //6 - listen for any incoming requests
console.log['Node.js web server at port 5000 is running..']
2________số 8
var
1
var
2var
3 var
4
________số 8
var
6
var
7
var
8
var
9http = require[
0http = require[
1____52http = require[
3
________số 8
http = require[
5http = require[
6
http = require[
5http = require[
8____59'http'
0
________số 8
http = require[
5'http'
3
http = require[
5'http'
5
________số 8
'http'
7'http'
8
________số 8
];
0____71];
2
Hàm được truyền trong http. createServer[] sẽ được thực thi khi client truy cập url http. //máy chủ cục bộ. 8081
Các bước chạy code
- Lưu mã trên vào một tệp có. tiện ích mở rộng js
- Mở dấu nhắc lệnh và đi đến thư mục chứa tệp ở đó bằng lệnh cd
- Chạy lệnh node file_name. js
- Mở trình duyệt và truy cập url http. //máy chủ cục bộ. 8081
Khi http. //máy chủ cục bộ. 8081 được mở trong trình duyệt
http. phương thức createServer[] bao gồm đối tượng yêu cầu có thể được sử dụng để lấy thông tin về yêu cầu HTTP hiện tại. g. url, tiêu đề yêu cầu và dữ liệu