polix
是基于koa v2.5.0
的IOC
、插件式开发框架,和平常的Node.js Web Framework
相比,它无需另外绑定路由集合、可拓展、开发简单,依照java
的著名依赖注入框架spring
来制作,让开发者专注于逻辑。polix
采用多服务多进程架构来保证服务的稳定和快速响应能力。polix
的中间件和koa v2.x
的中间件保持兼容。默认使用的ORM
是sequelize
(后续会提供polix-orm
)。开发者可以选择ES6/7/8 或者 TypeScript来进行开发。
1 | $ npm i polix --save |
Getting Started
使用
polix-cli
初始化应用
1
2
3 $ npm i polix-cli -g
$ pol init example && cd example
$ make build && make dev
Service
在
service
文件夹下添加user.js
1 | const { Service } = require('polix'); |
Controller
在
controller
文件夹下添加user.js
1 | const { Controller, GET, POST, DEL, PUT } = require('polix'); |
Middware
polix
的中间件与koa 2.x 的中间件保持兼容
框架默认加载koa-body
中间件,如需另外添加中间件则新建middware
文件夹(与controller
文件夹平级)
添加跨域中间件 ,新建cors.js
:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# cors.js
const cors = require('koa2-cors');
module.exports = function(){
return cors({
origin: function(ctx) {
return '*';
},
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
maxAge: 5,
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept']
});
}
该文件夹下必须存在index.js
文件作为总输出中间件文件,加载时根据导出对象的顺序进行绑定中间件
1 | # index.js |
Plugin
1 | npm i --save polix-request |
在项目根目录下的
config
文件夹下的plugin.default.js
中添加以下代码
1 | // `curl`最终会挂载到`this.app`下 |
在
controller
里用polix-request
1 | @GET |
polix
已经内置polix-request
插件了,这里只是个演示
Start
1 | $ make dev |
通过这个框架,还是会学到挺多东西,继续加油
如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理