跟我一块儿了解koa(二)

koa中路由动态传值
1.路由
路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)
组成的,涉及到应用如何响应客户端对某个网站节点的访问。
通俗的讲:路由就是根据不一样的 URL 地址,加载不一样的页面实现不一样的功能。
2.安装对应的 koa-router 路由模块npm

cnpm install --save koa
cnpm install koa-router --save

3.在app.js写入app

//引入 koa模块

var Koa=require('koa');

var Router = require('koa-router');

//实例化
var app=new Koa();

var router = new Router();
//配置路由
router.get('/',async (ctx)=>{
    ctx.body = '首页'
}).get('/news',async(ctx)=>{
    ctx.body = '这是一个新闻页面'
})
// 做用: 这是官方文档的推荐用法,咱们能够
// 看到 router.allowedMethods()用在了路由匹配 router.routes()以后,因此在当全部
// 路由中间件最后调用.此时根据 ctx.status 设置 response 响应头
app.use(router.routes());   /*启动路由*/
app.use(router.allowedMethods());

app.listen(3000)

运行项目,页面效果为

咱们使用另一种方法重写路由koa

//app1.js
var 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(3002)

效果以下

使用get方法进行动态路由传值async

//app3.js
//引入koa模块
var 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传值
//http://localhost:3002/newscontent?aid=123
router.get('/newscontent/:aid/:cid',async (ctx)=>{
    console.log('params',ctx.params)
    console.log(ctx.query);
    console.log(ctx.querystring)
    console.log(ctx.url)
    console.log(ctx.request.url);
    console.log(ctx.request.query);   //{ aid: '123', name: 'zhangsan' }  对象
    console.log(ctx.request.querystring);   //aid=123&name=zhangsan
    ctx.body = "新闻详情"
})
app.use(router.routes());   /*启动路由*/
app.use(router.allowedMethods());
app.listen(3003);

相关文章
相关标签/搜索