1.0.3 • Published 5 years ago

koa-ws-controller v1.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

koa-ws-controller

koa 多模块控制器(文档、测试类、使用实例待完善)

安装

npm install --save koa-ws-controller

引用

const Controller=require('koa-ws-controller')

new Controller({}) 使用

const Koa=require('koa')
const path=require('path')
const app=new Koa();

//去除 ctx.path的伪静态后缀(必选并且该中间件应该在路由匹配之前)(例:/a/b.html)
app.use(Controller.sliceSuffix()) 

app.use(new Controller({
    appPath:path.join(__dirname,'./app'), //模块目录路径 (必选) 结构如下注解
    extendPath:path.join(__dirname,'./extend.js'), //扩展 控制器的文件路径
    auto:true, //如果需要完全的控制路由,应该将该项设置为 false 自动匹配如果匹配不到依然会使用下列三项的默认值:true
    //所以应该根据实际情况决定是否配置空值
    module:'home', //默认模块 默认值:home
    controller:'index', // 默认控制器 默认值:index
    action:'index' //默认方法 默认值:index
    excludeModule:['common'], //需要排除的模块名称(单个可以是字符串 全小写)
    excludeController: ['common'],//需要排除的控制器名称(单个可以是字符串 全小写)

}))
  • 模块目录应该有类似如下结构(path.join(__dirname,'./app')):
app  部署目录
├─module_name           应用目录
│  ├─controller.js      控制器文件
│  ├─index.js           
│  └─ ...               更多类库
│  
└─ ...                  更多模块

控制器内置扩展方法

  • path() 当前匹配的路径 结合一些模板引擎实现快速的定位模板路径(例:/home/index/index)
  • url(url='',query={},suffix='.html',domain=false) 快捷生成路径
  • isPost() 是否post提交

静态方法

  • 1)、sliceSuffix() 返回一个koa中间件。去除url地址的后缀名(ctx.path后缀) 应该在其它中间件之前使用
app.use(Controller.sliceSuffix())
  • 2)、distribute(pathStr) 返回一个用于主动分配url地址或者改变url地址响应的中间件。
    • koa-ws-controller没有区分ctx.method。故此,自动的分配路由并未验证method。
    • 如果需要可结合类似koa-router等路由中间件完成以下功能。
    • 或者在某些时候Controller并未实现相应的方法可通过如下3)实现路由的响应
// router 来源于koa-router (略)
// 1)、get分配
router.get('/home/index', Controller.distribute())

// 2)、post分配
router.post('/home/index', Controller.distribute())
// 3)、改变路由
router.get('/aaa/bbb', Controller.distribute('home/user'))
1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago