UNPKG

wood-node

Version:
82 lines (71 loc) 2.93 kB
# wood ### 基于express的后台接口开发框架 #### v1.2.0更新: 注:从版本v1.2.0起,框架的使用方式与以前版本区别较大; - 增加了Fields类,用于存放数据模型model数据和验证; - 增加了模块自动加载机制; - 简化了模块调用方法,由new创建实例改为函数创建实例; - 升级了mongodb.js为3.1.9版本; - 增加了mongodb副本集群的支持; - 完善了查询对象query; - (已弃用)控制器类支持输入与输出的数据处理方法; #### 版本<v1.2.0的功能: - 使用ES6语法,如async/await等; - 支持mongodb和mysql等数据库; - 模型类自动根据已定义的字段来创建数据表; - 模型类为数据表映射,支持setter和getter等; - 模型类字段支持数据类型验证; - 模型类支持聚合查询功能; - 模型类支持默认值的设定; - 拥有查询条件对象,支持链式组合条件生成查询语句; - 模型类和控制器类拥有基本的增删改查等常规操作方法; - 控制器类支持输入与输出的数据处理方法; - 可以根据路由接口自动生成web和docx等格式的接口文档; - 支持基于redis缓存的高性能分页功能; - 支持错误处理输出错误信息功能; - 支持中间件扩展; - 支持接口提交的数据格式验证; - 自带redis常用功能操作库; - 自带token类; - 自带登录验证中间件; #### 安装: 执行命令:`npm i -S wood-node` #### 使用示例: 项目入口(/main.js) const App = require('wood-node'); let config = {}; //配置, 注:详细参数请参照示例源码/example/config/ App.start(config); 模型(/models/userModel.js) const { Model, Util, Fields } = require('wood-node'); //注:mysql时请使用Modelsql module.exports = Model('master.users', new Fields({ "rowid": { //行Id type: 'Number', required: true, //是否验证 index: true //索引 }, "machineName": String, "status": Number }), { "_id": 0, //0为不返回的字段 }, 'rowid' //primarykey主键 ); 控制器(/controllers/userController.js) const { Controller, catchErr, Util, Query, Model } = require('wood-node'); const controller = Controller(); class UserController extends controller { async userList(req, res, next) { let params = Util.getParams(req); let query = Query(req).where({rowid: 2}).limit(3).select({_id: 0}); const result = await catchErr(Model('users').findList(query)); res.print(result); } } module.exports = new UserController({ defaultModel: 'users' }); 路由(/routes/userRouter.js) const { Router, Controller } = require('wood-node'); const router = Router('user'); router.put('/project/user/add', Controller('user').userList); module.exports = router;