koa2初探(二)路由 koa-router

2023-11-05 10:38
文章标签 路由 router koa 初探 koa2

本文主要是介绍koa2初探(二)路由 koa-router,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每个项目产品都会让你加埋点,你是愿意花几天一个个加,还是愿意几分钟一个小时加完去喝茶聊天?来试试这520web工具, 高效加埋点,目前我们公司100号前端都在用,因为很好用,所以很自然普及开来了,推荐给大家吧

http://www.520webtool.com/

自己开发所以免费,埋点越多越能节约时间,点两下埋点就加上了,还不会犯错,里面有使用视频,反正免费 😄

https://blog.csdn.net/gggingsss/article/details/79913668

koa2初探(二)路由 koa-router

2018年04月12日 15:06:58 Karthus-gm 阅读数:3697 标签: koa2koa-router 更多

个人分类: Node.js

koa-router英文文档

安装

npm install koa-router
  • 1

使用example

const Koa = require('koa')
// 注意 require('koa-router') 返回的是函数:
const router = require('koa-router')()
const app = new Koa()// 添加路由router.get('/', async (ctx, next) => {ctx.response.body = '<h1>index page</h1>'
})router.get('/home', async (ctx, next) => {ctx.response.body = '<h1>HOME page</h1>'
})router.get('/404', async (ctx, next) => {ctx.response.body = '<h1>404 Not Found</h1>'
})// 调用路由中间件app.use(router.routes())app.listen(3000, ()=>{console.log('server is running at http://localhost:3000')
})

路由方法

get | post | put | delete | del | all

*all代表匹配所有,一般放在中间件的末尾

重定向

router.redirect('/login', 'sign-in');
  •  

动态路由

router.get('/users/:id', (ctx, next) => {// ...
});

类似于vue-router,可以将参数直接以 /path/parma 的形式传递参数

路由参数被捕获并添加到ctx.params

router.get('/:category/:title', (ctx, next) => {console.log(ctx.params);// => { category: 'programming', title: 'how-to-node' }
});

命名路由

给路由命名,可以在开发过程中生成URl并重新命名URL

router.get('user', '/users/:id', (ctx, next) => {// ...
});router.url('user', 3);
// => "/users/3"

多个中间件

router.get('/users/:id',(ctx, next) => {return User.findOne(ctx.params.id).then(function(user) {ctx.user = user;next();});},ctx => {console.log(ctx.user);// => { id: 17, name: "Alex" }}
);

路由嵌套

var forums = new Router();
var posts = new Router();posts.get('/', (ctx, next) => {...});
posts.get('/:pid', (ctx, next) => {...});
forums.use('/forums/:fid/posts', posts.routes(), posts.allowedMethods());// responds to "/forums/123/posts" and "/forums/123/posts/123"
app.use(forums.routes());

路由前缀

类似于vue-router的子路由

var router = new Router({prefix: '/users'
});router.get('/', ...); // responds to "/users"
router.get('/:id', ...); // responds to "/users/:id"

这篇关于koa2初探(二)路由 koa-router的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349273

相关文章

最好用的Wi-Fi 7! 小米BE3600Pro全屋路由网线版套装拆机测评

《最好用的Wi-Fi7!小米BE3600Pro全屋路由网线版套装拆机测评》小米全屋路由BE3600Pro网线版套装以有线组网+Wi-Fi7双引擎驱动,它不仅提速更提智,还内置中枢网关实现本地化控... 家里的Wi-Fi总是断断续续?设备一多就卡顿,看个视频都得缓冲半天。你不是一个人在战斗,很多人都被“伪高速

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.