Kiến trúc ứng dụng web
Một ứng dụng Web thường được chia thành bốn lớp –
- Client − Lớp này bao gồm các trình duyệt web, trình duyệt di động hoặc ứng dụng có thể thực hiện các yêu cầu HTTP đến máy chủ web.
- Server – Lớp này có máy chủ Web có thể chặn các yêu cầu do máy khách thực hiện và chuyển phản hồi cho chúng.
- Business – Lớp này chứa máy chủ ứng dụng được máy chủ web sử dụng để thực hiện quá trình xử lý cần thiết. Lớp này tương tác với lớp dữ liệu thông qua cơ sở dữ liệu hoặc một số chương trình bên ngoài.
- Data – Lớp này chứa cơ sở dữ liệu hoặc bất kỳ nguồn dữ liệu nào khác.
Tạo máy chủ web bằng nút
Node.js cung cấp một mô-đun http có thể được sử dụng để tạo ứng dụng khách HTTP của máy chủ. Sau đây là cấu trúc tối thiểu của máy chủ HTTP lắng nghe ở cổng 8081.
Tạo một tệp js có tên server.js −
Tập tin: server.js
var http = require('http'); var fs = require('fs'); var url = require('url'); // Create a server http.createServer( function (request, response) { // Parse the request containing file name var pathname = url.parse(request.url).pathname; // Print the name of the file for which request is made. console.log("Request for " + pathname + " received."); // Read the requested file content from file system fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); // HTTP Status: 404 : NOT FOUND // Content Type: text/plain response.writeHead(404, {'Content-Type': 'text/html'}); } else { //Page found // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/html'}); // Write the content of the file to response body response.write(data.toString()); } // Send the response body response.end(); }); }).listen(8081); // Console will print the message console.log('Server running at http://127.0.0.1:8081/');
Tiếp theo, hãy tạo tệp html sau có tên index.htm trong cùng thư mục mà bạn đã tạo server.js.
Tập tin: index.htm
<html> <head> <title>Sample Page</title> </head> <body> Hello World! </body> </html>
Bây giờ chúng ta hãy chạy server.js để xem kết quả –
$ node server.js
Xác minh đầu ra.
Server running at http://127.0.0.1:8081/
Gửi yêu cầu tới máy chủ Node.js
Mở http://127.0.0.1:8081/index.htm trong bất kỳ trình duyệt nào để xem kết quả sau.
Xác minh Đầu ra ở cuối máy chủ.
Server running at http://127.0.0.1:8081/ Request for /index.htm received.
Tạo ứng dụng khách Web bằng Node
Một máy khách web có thể được tạo bằng mô-đun http . Hãy kiểm tra ví dụ sau.
Tạo một tệp js có tên client.js −
Tập tin: client.js
var http = require('http'); // Options to be used by request var options = { host: 'localhost', port: '8081', path: '/index.htm' }; // Callback function is used to deal with response var callback = function(response) { // Continuously update stream with data var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { // Data received completely. console.log(body); }); } // Make a request to the server var req = http.request(options, callback); req.end();
Bây giờ hãy chạy client.js từ một thiết bị đầu cuối lệnh khác ngoài server.js để xem kết quả –
$ node client.js
Xác minh đầu ra.
<html> <head> <title>Sample Page</title> </head> <body> Hello World! </body> </html>
Xác minh Đầu ra ở cuối máy chủ.
Server running at http://127.0.0.1:8081/ Request for /index.htm received.