koa2入门--02.koa2路由
首先输入在项目文件下使用cmd,输入 npm install koa-router --save
const koa = require('koa');//引入koa const Router = require('koa-router'); //配置路由 ,ctx 上下文context ,包含了request和response等信息 var router = new Router(); router.get('/',async (ctx)=>{ ctx.body = '首页'; //相当于 res.writeHead(); res.end(); }).get('/news',async (ctx)=>{ ctx.body = '这是一个新闻页面'; }); const app = new koa();//实例化koa
app.use(router.routes()); //启动路由 app.use(router.allowedMethods());//官方配置
另一种便捷写法
const koa = require('koa'); var router = require('koa-router')(); var app = new koa(); router.get('/',async (ctx)=>{ ctx.body = '首页'; }); router.get('/news',async (ctx)=>{ ctx.body = '新闻列表页面'; }); router.get('/newscontent',async(ctx)=>{ ctx.body = '新闻详情'; }); app.use(router.routes());//启动路由 app.use(router.allowedMethods());//官方配置,请求错误的时候返回一个状态 app.listen(3000);
获取get传值
const koa = require('koa'); var router = require('koa-router')(); var app = new koa(); router.get('/',async (ctx)=>{ ctx.body = '首页'; }); router.get('/news',async (ctx)=>{ ctx.body = '新闻列表页面'; }); //获取get传值 router.get('/newscontent',async(ctx)=>{ //从ctx中读取get值 console.log(ctx.query); //获取的是格式化的对象,例{id:'123'} console.log(ctx.querystring); //获取的是url的字符串 ,例:'id=123' console.log(ctx.request); //获取请求相关的信息,包括method,url,header等信息 ctx.body = '新闻详情'; }); app.use(router.routes());//启动路由 app.use(router.allowedMethods());//官方配置,请求错误的时候返回一个状态 app.listen(3000);
动态路由
const koa = require('koa'); var router = require('koa-router')(); var app = new koa(); router.get('/',async(ctx)=>{ ctx.body = '首页'; }); //动态路由 router.get('/news/:params',async(ctx)=>{ //aid 为自定义参数名,可以通过ctx.params访问 //如果有多个动态传值,则可以写成 '/news/:params1/:params2'的形式 ctx.body = ctx.params; }); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000);