koa2 body返回html,Koa2路由 以及 路由get传值

一、Koa2路由的基本使用

路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。

通俗的讲:路由就是根据不同的URL地址,加载不同的页面实现不同的功能。

Koa中的路由和Express有所不同,在Express中直接引入Express就可以配置路由,但是在Koa中我们需要安装对应的koa-router路由模块来实现。

npm install --save koa-router

const Koa = require('koa');

const router = require('koa-router')(); //注意:引入的方式

const app = new Koa();

router.get('/', function (ctx, next) {

ctx.body="Hello koa";

})

router.get('/news,(ctx,next)=>{

ctx.body="新闻page"

});

app.use(router.routes()); //作用:启动路由

app.use(router.allowedMethods()); // 作用: 这是官方文档的推荐用法,我们可以看到router.allowedMethods()用在了路由匹配router.routes()之后,所以在当所有路由中间件最后调用.此时根据ctx.status设置response响应头

app.listen(3000,()=>{

console.log('starting at port 3000');

});

二、Koa路由get传值

在koa2中GET传值通过request接收,但是接收的方法有两种:query和querystring。

query:返回的是格式化好的参数对象。

querystring:返回的是请求字符串。

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

});

三、Koa动态路由

//请求方式 http://域名/product/123

router.get('/product/:aid',async (ctx)=>{

console.log(ctx.params); //{ aid: '123' } //获取动态路由的数据

ctx.body='这是商品页面';

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值