前端全栈--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传参的方法
相关资源