注意
與express不同 - 要單獨安裝路由模塊
npm install koa-router --save
// 引入koa
const koa = require('koa');
const app = new koa();
// 注意:引入的方式
const router = require('koa-router')();
router.get('/',async (ctx)=>{
ctx.body = 'Hello koa2';
});
router.get('/news',async (ctx)=>{
ctx.body = '新聞 page';
});
router.get('/newsContent',async (ctx)=>{
let url = ctx.url;
// query: 返回格式化好的參數(shù)
// querystring: 返回的是請求字符串
// 從 request 中獲取 GET 請求
let request = ctx.request;
let req_query = request.query;
let req_querystring = request.querystring;
// 從上下文直接獲取
let ctx_query = ctx.query;
let ctx_querystring = ctx.querystring;
ctx.body = {
url,
req_query,
req_querystring,
ctx_query,
ctx_querystring
};
});
// 動態(tài)路由(可傳遞多個值)
router.get('/newsContent/:newsId',async (ctx)=>{
ctx.body = { params: ctx.params};
});
// 作用:啟動路由
app.use(router.routes());
// 作用:這是官方文檔的推薦用法,我們可以看到 router.allowedMethords() 用在 router.routes() 之后,
// 所有,在當所有的路由中間件最后使用.此時根據(jù) ctx.status 設置 response 響應頭
app.use(router.allowedMethods());
// 監(jiān)聽端口
app.listen(3000,function(){
console.log('啟動成功');
});