美文网首页
Koa2 路由拆分成多文件

Koa2 路由拆分成多文件

作者: 待花谢花开 | 来源:发表于2018-08-16 14:45 被阅读0次

在使用koa-router的时候会遇到路由的配置,虽然基本的配置很简单,但是当我们的业务越来越复杂,涉及到的路由也越来越多,最开始的单文件路由配置就难以维护了。所以我们需要将路由根据模块进行拆分,从而根据模块配置相应的路由。

但是我们一般在进行拆分的时候可能会遇到下面这样的用法,这属于常规用法,但是模块多了也就不怎么好看了。

app.use(A.routes())
app.use(A.allowedMethods())
app.use(B.routes())
app.use(B.allowedMethods())
app.use(C.routes())
app.use(C.allowedMethods())

因此我们可以采用koa-compose这个方法对其进行优化。

假设我们有三个路由模块分别为A、B、C,首先新建文件夹routes,并在routes文件夹下新建A.js、B.js、C.js、index.js

routes/A.js
const Router = require('koa-router')

const router = new Router()

router.prefix('/A')

router.get('/all',(ctx,next)=>{
    ctx.body = "hello A module router"
})

module.exports = router
routes/B.js
const Router = require('koa-router')

const router = new Router()

router.prefix('/B')

router.get('/all',(ctx,next)=>{
    ctx.body = "hello B module router"
})

module.exports = router
routes/C.js
const Router = require('koa-router')

const router = new Router()

router.prefix('/C')

router.get('/all',(ctx,next)=>{
    ctx.body = "hello C module router"
})

module.exports = router
routes/index.js
const compose = require('koa-compose')
const glob = require('glob')
const { resolve } = require('path')

registerRouter = () => {
    let routers = [];
    glob.sync(resolve(__dirname, './', '**/*.js'))
        .filter(value => (value.indexOf('index.js') === -1))
        .map(router => {
            routers.push(require(router).routes())
            routers.push(require(router).allowedMethods())
        })
    return compose(routers)
}

module.exports = registerRouter
index.js
const Koa = require('koa')
const registerRouter  = require('./routes')

const app = new Koa()

app.use(registerRouter())

app.listen(3000)

相关文章

  • Koa2 路由拆分成多文件

    在使用koa-router的时候会遇到路由的配置,虽然基本的配置很简单,但是当我们的业务越来越复杂,涉及到的路由也...

  • AdonisJs v4学习笔记 3 - 路由

    官网文档 路由其实基本上就是Laravel那套东西,跟Koa2也很像,一看就明白了。默认的路由文件在/start/...

  • Koa 2 初体验(二)

    Koa2 路由 Koa2 原生路由的实现 路由在web中的作用不言而喻,而要先实现原生路由,需要的到地址栏输入的路...

  • 关于koa2的基础知识

    1、koa2 路由配置 2、koa2 中的 get 传值以及获取 get 传值 在 koa2 中,GET 传值通过...

  • koa2 自学笔记(二)

    此系列文章会持续更新。。。 这篇主要讲 koa2 的路由 首先,我们先用 koa2 原生实现一个简单的路由然后再使...

  • node-koa-路由传值

    一、Koa路由post传值 二、Koa路由get传值 在koa2中GET传值通过request接收,但是接收的方法...

  • Koa2 路由

    第一步 引入koa 和 fs模块读取html用 第二步新建几个页面 第三步 使用koa-router npm 安装...

  • Node.js中Koa2在控制台输出请求日志的方法

    Koa2真的是个很轻量的框架,轻量到路由都作为了模块单独了出来,Koa2也没有日志功能,如果我们需要有一些请求的日...

  • 跟我一起学koa2之路由开发、日志处理

    路由开发 我们在前面已经熟悉了koa2的中间件,路由等。也学会了怎么去使用redis存session。下面我们就开...

  • Koa2脚手架框架搭建流程

    Koa2脚手架框架搭建流程 记录一下自己之前使用koa2创建项目时初始化的整个流程: 路由 数据库 返回结构定义 ...

网友评论

      本文标题:Koa2 路由拆分成多文件

      本文链接:https://www.haomeiwen.com/subject/gkfobftx.html