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

跟我一起了解koa(二)的更多相关文章

  1. 【node】用koa搭建一个增删改服务(一)

    前文,vue分类里有一个日志demo的练习,这篇文章就是介绍针对日志demo的服务是怎么写的 一.koa搭建项目 1. npm init 2. npm install koa 二.建数据库 下面是项目 ...

  2. 1、koa的安装,get和post方法的基础使用

    koa是干什么:koa是用来解决回调嵌套的方案,减少异步回调,提高代码的可读性和可维护性同时也改进了错误处理( Express的错误处理相当糟糕) koa相比express的优点在哪里1.更加优雅简单 ...

  3. 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站

    这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...

  4. koa2中间键原理

    一.koa2 const http = require('http'); const compose = require('./compose'); class Koa { constructor() ...

  5. koa2入门笔记

    [TOC] 一 什么是koa koa是基于nodejs的web框架, 是一个中间件框架. 二 中间件 Koa 中间件是简单的函数,它是带有 (ctx, next)形参 的函数. 可以采用两种不同的方法 ...

  6. Koa源码分析(二) -- co的实现

    Abstract 本系列是关于Koa框架的文章,目前关注版本是Koa v1.主要分为以下几个方面: Koa源码分析(一) -- generator Koa源码分析(二) -- co的实现 Koa源码分 ...

  7. Node.js+Koa开发微信公众号个人笔记(二)响应事件

    微信公众号中的事件有订阅事件/扫码事件/点击事件/跳转链接事件等等,具体可以查阅文档. 这里来实现一下订阅事件,其他的事件的实现过程也都类似. 当有人订阅了公众号后,微信服务器会向我们的服务器推送一个 ...

  8. koa 项目实战(二)连接 mongodb 数据库

    1.配置文件 根目录/config/keys.js module.exports = { mongoURI: 'mongodb://127.0.0.1:27017/mongodb' } 2.启动文件 ...

  9. koa 路由、视图模块化(二)

    1.项目目录 2.路由 根目录/routes/index.js -- 首页 const router = require('koa-router')(); router.get('/', async ...

  10. koa 基础(二十六)数据库 与 art-template 模板 联动 --- 编辑数据、删除数据

    1.通过 ObjectID 获取 _id 根目录/module/db.js /** * DB库 */ var MongoDB = require('mongodb'); var MongoClient ...

随机推荐

  1. Vue的指令和成员

    目录 Vue的指令和成员 指令 表单 斗篷 条件 循环 成员 计算成员 监听成员 Vue的指令和成员 指令 表单 表单指令一般是和属性指令联合使用的,最常见的就是v-model="变量&qu ...

  2. java关于lombok(包括父类参数)

    java关于lombok对bean对象进行自动设置 使用说明 使用方式 注释类型 @NonNull @Data(常用) @NoArgsConstructor(常用)/@RequiredArgsCons ...

  3. ubuntu下apache服务器操作方法小结,具有参考借鉴价值

    这篇文章主要介绍了ubuntu下apache服务器操作方法小结,非常不错,具有参考借鉴价值,需要的朋友可以参考下(http://www.0831jl.com)Linux系统为Ubuntu 一.Star ...

  4. limit方法也是模型类的连贯操作方法之一

    limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多.ThinkPHP的limit方法可以兼容所有的数据库驱动类的. 限制结果数量 例如获取满足要求的 ...

  5. IDEA中Git的使用(多人合作)

    首先我们要简单知道github跟Git的区别.git是版本控制工具, github是一个面向开源及私有软件项目的托管平台,也是程序员交流的地方. 接下来就开始讲怎么多人一起开发. 首先我们先拥有git ...

  6. PAT甲级——A1098 Insertion or Heap Sort

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  7. 解决pycharm安装python库报错问题

    最近在玩微信图灵机器人,不过我安装有一些库,安装报错,上网找了很久,总结有两种方法,记录一下 方法一: 手动安装,直接到官网你需要的python库下载到本地, 放在安装python路径,C:\User ...

  8. yum 安装配置

    光盘挂载:mount /dev/cdrom /mnt/cdrom 配置文件路径:vim /etc/yum.repos.d/dvd.repo 配置文件内容:[dvd]name=dvdbaseurl=fi ...

  9. java代码优化写法(转摘)

    本文源地址:https://blog.csdn.net/syc001/article/details/72841650 可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序 ...

  10. python 描述器

    语法简析 一般来说,描述器(descriptor)是一个有”绑定行为”的对象属性(object attribute),它的属性访问被描述器协议方法重写.这些方法是 __get__(). __set__ ...