open-rest 的 helper 插件,用来实现 CRUD 的标准操作


Keywords
restapi, controller, helper, assistant, restify, open-rest, rest, rest-api, resthelper
License
MIT
Install
npm install open-rest-helper-rest@2.2.0

Documentation

open-rest-helper-rest

open-rest 的 helper 插件,用来实现 CRUD 的标准操作

Build status codecov

Node version

 >= 6 

Usage

npm instsall open-rest-helper-rest --save
const rest = require('open-rest');
const restHelper = require('open-rest-helper-rest');

rest.plugin(restHelper);

// restHelper Equivalent to rest.helper.rest

restHelper.list

标准的列表方法

// Model 必选 Sequelize 定义的 Model, 表明要从哪个表获取数据
// opt 可选 特殊的 Model.findAll(options) options 的 hook 名称
// allowAttrs 可选,数组类型,指定允许返回的列,不指定则返回全部
// hook 可选,直接输出或者暂时寄存在 hooks 上

restHelper.list(Model, opt, allowAttrs, hook);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .list
  .Model(User)
  .exec();

restHelper.detail

标准的输出详情方法

// hook 必选,要输出的数据在 req.hooks 的什么位置
// attachs 可选,要附加输出的数据格式为 key => value, value 是 req 上的路径字符串
// statusCode 可选,输出使用的http状态码, 默认值 200
// attrFilter 可选, 是否允许过滤属性, 默认 true

restHelper.detail(hook, attachs, statusCode, attrFilter);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .detail
  .hook('user')
  .statusCode(201)
  .attachs({address: 'hooks.address'})
  .exec();

restHelper.remove

标准删除资源的方法

// hook 必选,要删除的实例在 req.hooks 的什么位置

restHelper.remove(hook);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .remove
  .hook('user')
  .exec();

restHelper.beforeModify

修改资源的前期准备,不包括save到数据库的操作

// Model 必选, Sequlize 定义的Model,表明数据的原型
// hook 必选, 实例的存放位置
// cols 可选, 允许修改的字段

restHelper.beforeModify(Model, hook, cols);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .beforeModify
  .Model(User)
  .cols(cols)
  .hook('user')
  .exec();

restHelper.save

修改save到数据库的操作

// 修改某个资源描述的后置方法, 将变化保存到数据库
// Model 必选, Sequlize 定义的Model,表明数据的原型
// hook 必选, 实例的存放位置

restHelper.save(hook);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .save
  .hook('user')
  .exec();

restHelper.modify

标准的修改某个资源的操作

// Model 必选, Sequlize 定义的Model,表明数据的原型
// hook 必选, 实例的存放位置
// cols 可选, 允许修改的字段

restHelper.modify(Model, hook, cols);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .modify
  .Model(User)
  .cols(cols)
  .hook('user')
  .exec();

restHelper.beforeAdd

创建资源的操作,不包括 res.send 返回

// Model 必选, Sequlize 定义的Model,表明数据的原型
// cols 可选, 允许设置的字段
// hook 必选, 生成实例的存放位置

restHelper.beforeAdd(Model, cols, hook);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .beforeAdd
  .Model(User)
  .cols(['name', 'age', 'gender'])
  .hook('user')
  .exec();

restHelper.add

标准的创建资源方法

// Model 必选, Sequlize 定义的Model,表明数据的原型
// cols 可选, 允许设置的字段
// hook 可选, 生成实例的存放位置
// attachs 可选,要附加输出的数据格式为 key => value, value 是 req 上的路径字符串

restHelper.add(Model, cols, hook, attachs);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .add
  .Model(User)
  .cols(['name', 'age', 'gender'])
  .hook('user')
  .exec();

restHelper.batchAdd

批量创建资源方法

// Model 必选, Sequlize 定义的Model,表明数据的原型
// cols 可选, 允许设置的字段
// hook 可选, 生成实例的存放位置
// attachs 可选,要附加输出的数据格式为 key => value, value 是 req 上的路径字符串

restHelper.batchAdd(Model, cols, hook, attachs);

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .batchAdd
  .Model(User)
  .cols(['name', 'age', 'gender'])
  .hook('user')
  .exec();

restHelper.statistics

标准的资源统计功能方法

// Model 必选,Sequlize 定义的Model,表明数据从哪里获取
// where 可选,额外的条件, req 对象上的路径,例如 'hooks.option.where',
// hook 可选, 默认为空,如果指定了hook,则数据不直接输出而是先挂在 hook上
// conf 可选,统计功能的配置,req 对象上值的路径例如 'hooks.user.conf'

restHelper.statistics(Model, 'hooks.opt.where', 'report', 'hooks.conf');

// return
// function(req, res, next) { ... };

//or 链式调用
restHelper
  .statistics
  .Model(User)
  .where('hooks.options.where')
  .conf('hooks.stats.conf')
  .hook('data')
  .exec();