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);

浙公网安备 33010602011771号