资讯专栏INFORMATION COLUMN

koa router 多文件引入

sixleaves / 2944人阅读

摘要:背景路由越来越多下的都要使用下面的方式引入怎么才能方便快捷的将下的所有文件都引入呢这次记录的就是如果将一次性循环引入文件目录传统方式引入引入用来递归地迭代指定的目录,并返回这些模块。

背景

koa-router路由越来越多,api下的router都要使用下面的方式引入,怎么才能方便快捷的将api下的所有文件都引入呢
这次记录的就是如果将koa-router 一次性循环引入

const book = require("./app/api/v1/book")
const classic = require("./app/api/v1/classic")
// ...
app.use(book.routes(), book.allowedMethods())
app.use(classic.routes(), classic.allowedMethods())
//...
文件目录
koa-demo/
  |-api/
     |-books.js
     |-classic.js
     |-users.js
     |-articles.js
  |-package.json
  |-app.js

传统方式引入router

app.js

const Koa = require("koa")
const app = new Koa()
const book = require("./app/api/v1/book")
const classic = require("./app/api/v1/classic")

app.use(book.routes(), book.allowedMethods())
app.use(classic.routes(), classic.allowedMethods())

app.listen(3333)
require-directory引入

require-directory用来递归地迭代指定的目录,并返回这些模块。
github
随着文件增加,如何高效的开发就是我们要追求的事情了

首先

npm install require-directory

app.js

const Koa = require("koa")
const app = new Koa()
const Router = require("koa-router")
// 使用require-directory加载路由文件夹下的所有router
const requireDirectory = require("require-directory")

// 将所有的路由加载上,自动加载代码
const modules = requireDirectory(module, "./api", { visit: whenLoadModule })

function whenLoadModule(obj) {
  if (obj instanceof Router) {
    app.use(obj.routes(), obj.allowedMethods())
  }
}

app.listen(3333)

路由文件就按照传统的方式写就行
books.js

const Router = require("koa-router")
const router = new Router()

router.get("/v1/book/latest", (ctx, next) => {
    ctx.body = {
        key: "book"
    }
})

module.exports = router
关于我

您可以扫描添加下方的微信并备注 Sol 加交流群,给我提意见,交流学习。

如果对你有帮助送我一颗小星星(づ ̄3 ̄)づ╭❤~

转载请联系作者!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109730.html

相关文章

  • GraphQL 搭配 Koa 最佳入门实践

    摘要:如下图嗯,如图都已经查询到我们保存的全部数据,并且全部返回前端了。如图没错,什么都没有就是查询服务的界面。写好了之后我们在配置一下路由,进入里面,加入下面几行代码。 GraphQL一种用为你 API 而生的查询语言,2018已经到来,PWA还没有大量投入生产应用之中就已经火起来了,GraphQL的应用或许也不会太远了。前端的发展的最大一个特点就是变化快,有时候应对各种需求场景的变化,不...

    MoAir 评论0 收藏0
  • node服务端渲染(完整demo)

    摘要:简介搭建多页面服务端渲染技术点搭建服务创建页面路由模板引擎组合打包多页面端异步请求服务端日志打印项目源码运行一现代服务端渲染的由来服务端渲染概念是指,浏览器向服务器发出请求页面,服务端将准备好的模板和数据组装成完整的返回给浏览器展示前端后 简介 nodejs搭建多页面服务端渲染 技术点 koa 搭建服务 koa-router 创建页面路由 nunjucks 模板引擎组合html ...

    cheukyin 评论0 收藏0
  • React+Koa全栈开发手记

    摘要:本项目中采用了进行状态管理,的主要作用是允许状态在不同分支的组件中进行传递,从而避免了使用原始方法如导致的不同分支组件之间数据无法传递子组件无法修改父组件状态等问题。 项目功能 最近在做一个旧书交易网站,本属于B/S体系结构的课程作业,但由于采用了新的框架所以跃跃欲试想都记录下来。 实现一个旧书交易网站,基本功能如下: 实现用户注册、登录功能,用户注册时需要填写必要的信息并验证,如...

    wqj97 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<