Ví dụ route Express trong Nodejs

Ví dụ route Express 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ụ route Express 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.

Chào các bạn, như các bạn đã biết, một ứng dụng sẽ không chỉ đơn giản là hiển thị đoạn text ra màn hình như ứng dụng Hello World như chúng ta đã làm ở bài trước. Ngoài ra nó còn phải trả về các tài nguyên như là HTML, scripts, hình ảnh ở các địa chỉ khác nhau.

Vậy để quy định các địa chỉ trả về những thứ ta cần, thì hôm nay chúng ta sẽ tìm hiểu về định tuyến trong Express.

Đây là một phần quan trong trong việc nắm bắt Express, bạn hãy tập trung nhé. Và nên nhớ phải khởi động lại NodeJs mỗi khi bạn thay đổi code nhé.

1. app.get(path, handler)

Đây là hàm dùng để khai báo cho Express nơi để xử lý một yêu cầu mang phương thức GET, phương thức này thường dùng để hiển thị dữ liệu. Mỗi khi bạn Enter trên thanh địa chỉ trình duyệt tức là bạn đã gọi một phương thức GET

Hàm này có 2 đối số cần phải nhập vào đó là:

  • path: là đường dẫn tới địa chỉ mà bạn cho phép người khác truy cập
  • handler: là hàm sẽ xử lý yêu cầu truy cập này

Ta lấy lại code của bài tạo ứng dụng Hello World bằng Express ở bài trước, tuy nhiên ta sửa lại một chút để làm rõ hơn:


var express = require('express');
var app = express();
 
app.get('/hello', function(req, res){
   res.send("Hello World!");
});
 
app.listen(3000); 

Bằng đoạn code trên, ta đã khai báo địa chỉ http://localhost:3000/hello, server sẽ nhận yêu cầu gửi tới địa chỉ /hello, và gọi hàm xử lý được khai báo và gửi trả phản hồi là một đoạn text Hello World

Dưới đây là hình ảnh truy cập đúng và truy cập sai:

2. app.post(path, handler)

Tương tự như hàm app.get, hàm này sẽ chỉ định địa chỉ là nơi sẽ xử lý yêu cầu với phương thức POST. Phương thức này thường dùng để gửi dữ liệu lên cho server. Bạn hãy bổ xung đoạn mã sau:


 app.post('/hello', function(req, res){
   res.send("Ban vua gui yeu cua bang phuong thuc POST toi dia chi /hello");
}); 

Chắc là bạn thấy lạ rằng chúng ta đã định tuyến cùng một địa chỉ đúng không. Thực tế là không hề gì, một địa chỉ có thể dùng định tuyến cho nhiều phương thức khác nhau. Mỗi một truy cập, tùy theo phương thức mà nó sẽ gọi đúng định tuyến bạn quy định.

Để kiểm tra xem định tuyến cho phương thức POST có hoạt động hay không, ta sẽ làm theo cách sau. Đầu tiên bạn hãy khởi động lại NodeJs bằng cách dùng lệnh:


  node index.js 

Gọi lệnh này sẽ làm code bạn thêm vào có hiệu lực. Sau đó bạn hãy mở thêm một CMD nữa, đừng có tắt cái đang chạy NodeJs nha, không là không có truy cập được gì đâu.

Dùng curl trong CMD để gọi tới đường dẫn phương thức POST mà bạn quy định bằng lệnh sau:


  curl -X POST "http://localhost:300/hello" 


Nếu nó hiển thị như hình dưới đây thì bạn đã thành công rồi đó.

3. Bộ định tuyến (routers)

Nếu bạn cứ phải tự định nghĩa các định tuyến với các chức năng giống nhau thì rất mệt để bảo trì hoặc sửa đổi. Ví dụ như ta có tính năng user, với các định tuyến như GET /user, POST /user, thay vì phải tự khai báo lại là app.get('/user') và app.post('/user') thì ta cần chuyển qua sử dụng bộ định tuyến.

Đầu tiên bạn hãy tạo một file và đặt tên ví như là userRouters.js chẳng hạn, và nhập đoạn code sau:


var express = require('express');
var router = express.Router();
 
router.get('/', function(req, res){
   res.send('Ban da truy cap dia chi /user bang phuong thuc GET');
});
router.post('/', function(req, res){
   res.send('Ban da truy cap dia chi /user bang phuong thuc POST');
});
 
// Xuất bộ định tuyến này để có thể sử dụng ở file khác
module.exports = router; 

Tiếp đến ta hãy import userRouters.js vào file index.js nào, ta sẽ được code như dưới đây:


var express = require('express');
var app = express();
 
app.get('/hello', function(req, res){
   res.send("Hello World!");
});
 
app.post('/hello', function(req, res){
    res.send("Ban vua gui yeu cua bang phuong thuc POST toi dia chi /hello");
});
 
var userRouters = require('./userRouters');
// Lưu ý: userRouters và index.js phải ở cùng 1 thư mục
app.use('/user', userRouters);
 
app.listen(3000); 


Ta hãy kiểm tra xem bộ định tuyến có hoạt động như ta nghĩ không nào, hãy truy cập vào địa chỉ /user bằng cả 2 phương thức POSTGET. Các bạn nhớ phải khởi động lại NodeJs nhé. Nếu các bạn được như hai hình dưới đây là bạn đã thành công.

GET /user

POST /user

4. Lời kết

Qua bài này mình đã giới thiệu cho các bạn biết cách sử dụng định tuyến trong Express rồi đây. Phần này là phần cốt lõi và mình mong bạn đã hiểu rõ, vì sau này bạn sẽ phải sử dụng chúng rất nhiều. Nhất là bộ định tuyến, bạn phải hiểu nó để có thể tổ chức code trong dự án một cách trực quan hơn.

Hy vọng với bài viết về Ví dụ route Express 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!