koa中路由动态传值

1.路由

路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)

组成的,涉及到应用如何响应客户端对某个网站节点的访问。

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

2.安装对应的 koa-router 路由模块

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

3.在app.js写入

//引入 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)

运行项目,页面效果为



我们使用另外一种方法重写路由

//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方法进行动态路由传值

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

最新文章

  1. A Complete List of .NET Open Source Developer Projects
  2. Stick hero "攻略", android 代码编写与分析(后台截屏, 后台模拟点击)
  3. Javascript 中的this 指向的对象,你搞清楚了吗?
  4. Flex Viewer
  5. mysql远程连接提示无法连接,报1130错误
  6. linux下proc里关于磁盘性能的参数
  7. IOS 作业项目(4)步步完成 画图 程序(问题处理)终结
  8. 专门查看阻塞和死锁情况以及引起的SQL语句,你可以创建后,直接运行之。
  9. SVN简明课程
  10. MySQL CURTIME() 函数
  11. 初识Log4Net
  12. sourcetree file status checkbox gone (文件状态下的勾选文件 list 消失)
  13. 最新版本elasticsearch本地搭建入门篇
  14. Dockerfile指令学习 (转)
  15. 【BZOJ5138】[Usaco2017 Dec]Push a Box(强连通分量)
  16. Noip2018游记——AFO
  17. Java泛型方法与数据查询
  18. PAT 1021 Deepest Root[并查集、dfs][难]
  19. 《JAVA与模式》之不变模式
  20. CSS基础-DAY1

热门文章

  1. 通过key_len分析联合索引的使用
  2. East Central North America 2006 Hie with the Pie /// 状压dp oj22470
  3. Django之深入了解视图层
  4. C++编程规范和编译过程详解
  5. 使用phpStudy自带的mysql-front学习建库建表以及基本的mysql语句
  6. IOS学习笔记57--IOS7状态栏适配(二)
  7. light oj 1231 dp 多重背包
  8. jdk工具(转)
  9. PKU--2184 Cow Exhibition (01背包)
  10. oracle日志