跟我一起了解koa(二)
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(二)的更多相关文章
- 【node】用koa搭建一个增删改服务(一)
前文,vue分类里有一个日志demo的练习,这篇文章就是介绍针对日志demo的服务是怎么写的 一.koa搭建项目 1. npm init 2. npm install koa 二.建数据库 下面是项目 ...
- 1、koa的安装,get和post方法的基础使用
koa是干什么:koa是用来解决回调嵌套的方案,减少异步回调,提高代码的可读性和可维护性同时也改进了错误处理( Express的错误处理相当糟糕) koa相比express的优点在哪里1.更加优雅简单 ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- koa2中间键原理
一.koa2 const http = require('http'); const compose = require('./compose'); class Koa { constructor() ...
- koa2入门笔记
[TOC] 一 什么是koa koa是基于nodejs的web框架, 是一个中间件框架. 二 中间件 Koa 中间件是简单的函数,它是带有 (ctx, next)形参 的函数. 可以采用两种不同的方法 ...
- Koa源码分析(二) -- co的实现
Abstract 本系列是关于Koa框架的文章,目前关注版本是Koa v1.主要分为以下几个方面: Koa源码分析(一) -- generator Koa源码分析(二) -- co的实现 Koa源码分 ...
- Node.js+Koa开发微信公众号个人笔记(二)响应事件
微信公众号中的事件有订阅事件/扫码事件/点击事件/跳转链接事件等等,具体可以查阅文档. 这里来实现一下订阅事件,其他的事件的实现过程也都类似. 当有人订阅了公众号后,微信服务器会向我们的服务器推送一个 ...
- koa 项目实战(二)连接 mongodb 数据库
1.配置文件 根目录/config/keys.js module.exports = { mongoURI: 'mongodb://127.0.0.1:27017/mongodb' } 2.启动文件 ...
- koa 路由、视图模块化(二)
1.项目目录 2.路由 根目录/routes/index.js -- 首页 const router = require('koa-router')(); router.get('/', async ...
- koa 基础(二十六)数据库 与 art-template 模板 联动 --- 编辑数据、删除数据
1.通过 ObjectID 获取 _id 根目录/module/db.js /** * DB库 */ var MongoDB = require('mongodb'); var MongoClient ...
随机推荐
- USACO 2006 November Gold Fence Repair /// 贪心(有意思)(优先队列) oj23940
题目大意: 输入N ( 1 ≤ N ≤ 20,000 ) :将一块木板分为n块 每次切割木板的开销为这块木板的长度,即将长度为21的木板分为13和8,则开销为21 接下来n行描述每块木板要求的长度Li ...
- 18-3-bind
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery 表单验证插件
其他: <form action=""> First name: <input type="text" name="FirstNam ...
- python spark环境配置
在配置Hadoop之前,应该先做以下配置 1.更改主机名 首先更改主机名,目的是为了方便管理. 输入:hostname 查看本机的名称 使用 hostname 修改当前主 ...
- HTML - 表单标签相关
<html> <head></head> <body> <!-- 表单标签 : 收集其标签内部的数据, 提交给指定的服务器 action : 数据 ...
- Vue-element 的 resetFields of undefined报错
触发场景:添加表单弹框,当我信息保存成功后会报 [Vue warn]: Error in event handler for "click": "TypeError: C ...
- Redis深度历险——核心原理与应用实践
高可用架构」的各位老铁们,你们好!你是否还记得上个月发布的文章中,有两篇深入讲解Redis的文章,分别是和,广大粉丝读者们对这两篇文章整体评价颇高.而我就是这两篇文章的原创作者「老钱」(钱文品),我是 ...
- iOS之CGAffineTransform属性详解和方法使用
1.CGAffineTransform简介 UIView有个属性transform,是CGAffineTransform类型.可以使其在二维界面做旋转.平移.缩放单独或者组合动画! CGAffineT ...
- 群晖引导是uefi还是传统模式的识别
看左下角光标闪不闪,不闪的是uefi,在闪的就是传统
- 《DSP using MATLAB》Problem 8.2
代码: %% ------------------------------------------------------------------------ %% Output Info about ...