前端全栈--nodejs 之koa2 路由以及get传参

发布于 2021-05-13 12:44 ,所属分类:区块连和PHP开发学习资料

koa2的路由和express中的路由有些不一样,express中的路由只需要直接引入即可使用,而koa2中的路由需要安装对应的路由模块

在使用router之前首先安装并且引入koa-router这个middlewarekoa-router这个middleware

npm install koa-router

一 配置路由

//引入 koa模块const Koa = require('koa');const router = require('koa-router')(); //注意:引入的方式
//实例化const app = new Koa(); router.get('/', function (ctx, next) { ctx.body="Hello koa";})
//ctx 上下文 context ,包含了request 和response等信息
//配置路由router.get('/news,(ctx,next)=>{ctx.body="新闻 page"});
//配置路由router.get('/',async(ctx)=>{ ctx.body='首页'; /*返回数据 相当于:原生里面的res.writeHead() res.end()*/}).get('/news',async(ctx)=>{ ctx.body="这是一个新闻页面"})
app.use(router.routes()); //作用:启动路由app.use(router.allowedMethods()); // 作用:这是官方文档的推荐用法,我们可以看到 router.allowedMethods()用在了路由匹配 router.routes()之后,所以在当所有路由中间件最后调用.此时根据 ctx.status 设置 response 响应头
app.listen(3000,()=>{console.log('starting at port 3000');});

二 使用get传参

在koa2中get传参使用request接受;接收的方式有两种query和querystring

query: 接收的是格式化好的参数对象

quertstring:接收的是请求字符串

const Koa = require('koa');const Router = require('koa-router');
const app = new Koa();const router = new Router();
router.get('/', function (ctx, next) { ctx.body="Hello koa";})
router.get('/newscontent,(ctx,next)=>{ let url =ctx.url; //从 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 }});app.use(router.routes()); //作用:启动路由app.use(router.allowedMethods()); //作用:当请求出错时的处理逻辑app.listen(3000,()=>{ console.log('starting at port 3000');});

以上就是关于koa2路由以及get传参的方法


相关资源