分享更有价值
被信任是一种快乐

node.js的后端路由自动加载怎么实现

文章页正文上

这篇文章主要介绍了node.js的后端路由自动加载怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js的后端路由自动加载怎么实现文章都会有所收获,下面我们一起来看看吧。我们前端同学或者是nodejs服务端的同学,在你们使用express和koajs写接口的时候, 咱们是不都要写路由 比如如下登录接口router.post('/user/login', user.login);获取用户信息接口router.get('/user/info', checkAuth, user.xxx);这种写法很常见, 先注册路由,再指定后续要执行的中间件方法。可是当接口越来越多,比如有1000个接口, 就得这样注册1000次,多了我认为是一件很麻烦且不优雅的事情koa&express 路由注册示例写1000个接口就要在router.js里注册1000次吗?eggjs路由注册示例**这种项目扩大时候, 我认为这种配置会显得很冗余,所以就需要实现一种路由自动加载的机制来改善它优化它。1、提升效率2、更优雅的编写接触下来, 我发现有几个框架用不同方法实现了路由自动加载。一、think系列第一个是thinkPHP和thinkjs, 参考链接 thinkjs.org/zh-cn/doc/3…他两的关系属于是thinkjs是后来按照thinkPHP的思想设计开发的。他两路由自动加载属于基于文件的, 就是说你按控制器的名字和方法名写好,直接就可以访问路由,不需要额外的配置。1、thinkphp的路由自动加载tp是 按模块/控制器/方法文件名 自动加载比方下面这个Admin模块下, AdlistController.class.php里 index方法
他的路由就会自动加载为 Admin/adList/index2、thinkjs的路由自动加载控制器文件文件自动加载逻辑1)、应用初始化,创建实例
….2)、遍历控制器目录, 加载控制器得到目录文件对应的导出class的 Map
例如 Controller目录下
他会加载出来模块、控制器、方法挂在他的app上。3、控制器匹配部分上一步是在thinkjs应用启动阶段做的事情。这一步 控制器匹配部分 是在当请求进来的时候做的事情。就是当请求进来,会先进过,think-router 把module, controller, action ,解析出来挂在ctx上。在这里拿ctx上本次请求的module, controller, action去和启动时挂在app的 module, controller, action,列表去匹配, 如果有就执行。1、 think think-router解析完, think-controller去匹配执行, 他这个是动态匹配。
2、koa-router 匹配到路由后, 自己再用koa-compose组装一个小洋免费云主机、域名葱圈去执行
! 这种我的理解是程序启动就注册好的顺序image.png总结:thinkjs是先把你的控制器和方法加载出来, 最后当请求进来的时候,利用think-controller 去先匹配模块/控制器,再匹配方法, 如果有的话就帮你执行,没有的话,就404二、以egg改造版为例 装饰器的路由自动加载装饰器的写法类似于 java spring中的注解node框架中 nestjsmidwayjs已经全面拥抱了装饰器路由。写法比较优雅建议控制器的文件名和控制器名字保持一致, 这样你找api也比较好找
比如控制的文件名字叫 home.ts ,
那你控制器注册也写 @controller('/home') 来保持一致。1、 控制器装饰器 @controller(‘/order’)2、方法装饰器 @Get(‘/export’)、 @Post(‘/list’)get接口 就是 @Get()post的接口 就是 @Post()3、装饰器路由统一注册这里统一按egg的方法循环注册路由建议使用node写服务直接上midwayjs或者nestjs关于“node.js的后端路由自动加载怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“node.js的后端路由自动加载怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注云技术行业资讯频道。

相关推荐: react刷新找不到页面如何解决

这篇文章主要讲解了“react刷新找不到页面如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react刷新找不到页面如何解决”吧! react刷新找不到页面的解决办法:1、找到并打开“app.jsx”文件…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册