Koa.js - Định tuyến

Các khung công tác web cung cấp các tài nguyên như trang HTML, tập lệnh, hình ảnh, v.v. theo các tuyến khác nhau. Koa không hỗ trợ các tuyến trong mô-đun cốt lõi. Chúng ta cần sử dụng mô-đun Koa-router để dễ dàng tạo các tuyến đường trong Koa. Cài đặt mô-đun này bằng lệnh sau.

npm install --save koa-router

Bây giờ chúng ta đã cài đặt Koa-router, hãy xem một ví dụ đơn giản về lộ trình GET.

var koa = require('koa');
var router = require('koa-router');
var app = koa();

var _ = router();              //Instantiate the router
_.get('/hello', getMessage);   // Define routes

function *getMessage() {
   this.body = "Hello world!";
};

app.use(_.routes());           //Use the routes defined using the router
app.listen(3000);

Nếu chúng tôi chạy ứng dụng của mình và truy cập localhost: 3000 / hello, máy chủ sẽ nhận được yêu cầu theo tuyến "/ hello". Ứng dụng Koa của chúng tôi thực thi chức năng gọi lại được đính kèm với tuyến đường này và gửi "Hello World!" như phản hồi.

Chúng tôi cũng có thể có nhiều phương pháp khác nhau trên cùng một tuyến đường. Ví dụ,

var koa = require('koa');
var router = require('koa-router');
var app = koa();

var _ = router(); //Instantiate the router

_.get('/hello', getMessage);
_.post('/hello', postMessage);

function *getMessage() {
	this.body = "Hello world!";
};
function *postMessage() {
   this.body = "You just called the post method at '/hello'!\n";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);

Để kiểm tra yêu cầu này, hãy mở thiết bị đầu cuối của bạn và sử dụng cURL để thực hiện yêu cầu sau

curl -X POST "https://localhost:3000/hello"

Một phương pháp đặc biệt, all, được cung cấp bởi express để xử lý tất cả các loại phương thức http tại một tuyến đường cụ thể bằng cách sử dụng cùng một chức năng. Để sử dụng phương pháp này, hãy thử cách sau:

_.all('/test', allMessage);

function *allMessage(){
   this.body = "All HTTP calls regardless of the verb will get this response";
};