注意
与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: 返回格式化好的参数
// 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
};
});
// 动态路由(可传递多个值)
router.get('/newsContent/:newsId',async (ctx)=>{
ctx.body = { params: ctx.params};
});
// 作用:启动路由
app.use(router.routes());
// 作用:这是官方文档的推荐用法,我们可以看到 router.allowedMethords() 用在 router.routes() 之后,
// 所有,在当所有的路由中间件最后使用.此时根据 ctx.status 设置 response 响应头
app.use(router.allowedMethods());
// 监听端口
app.listen(3000,function(){
console.log('启动成功');
});
网友评论