impress-router-table, 在 koa 中像 sails 一样定义路由(routes) 和 中间件(policy)
发布于 7 年前 作者 magicdawn 5000 次浏览 来自 分享

RT, 使用了 sails 之后,再回去 express / koa 之后路由又是麻烦事, impress-router 将 sails 的 routes config 移植到 koa, 直接指定顶级文件夹(即 sails 中的 api 文件夹)

链接

https://github.com/magicdawn/impress-router-table

简短说明

在 api 这个顶级文件夹下, 有 controllers / policies / policy.js / routes.js 即可使用声明式的路由定义, 这里有完整示例 https://github.com/magicdawn/impress-router-table/blob/master/test/demo/app.js

下边是 README.md ----------------------- 我是分割线 ------------------------------

impress-router-table

Sails.js like routing for koa.js

Build Status Coverage Status npm version npm downloads npm license

Install

$ npm i impress-router-table --save

API

const routing = require('impress-router-table');

routing(rootdir)

returns a koa middleware


const app = new (require('koa'))

app.use(routing(__dirname + '/api'))

app.listen(9000)

Folder structure in rootdir

for example in previous example, __dirname + '/api', take a look at test/demo/api/

test/demo/api
├── controllers
│   ├── PolicyTestController.js
│   └── RouteTestController.js
├── policies
│   ├── auth.js
│   └── bar.js
├── policy.js # policy config
└── routes.js # routes config

2 directories, 6 files

Changelog

CHANGELOG.md

License

the MIT License http://magicdawn.mit-license.org

3 回复

btw koa 2 only

稍介绍一下policy,不然很多人是看不明白的

@i5ting 好的, 下边是简介

  • policy 即是 middleware 的别名, 一个 middleware 即是一个 policy, 或者是其他语言里边的拦截器
  • 对于 controller / action 式的框架来说, policy 名称 比 middleware 更合适, 应用了 policy 之后就可以进行拦截请求

更详细的见 http://sailsjs.com/documentation/reference/configuration/sails-config-policies

回到顶部