restify-curd

1.0.8 • Public • Published

restify-curd

通用的collection操作,包含GET,POST,PATCH,DEL等。

TODO

  • 内嵌文档支持分页
  • 支持无限极内嵌文档
  • 支持更多的查询条件

更新

1.0.6

  • 使用了最新版本mongoose@4.4.3,固定package.json的依赖版本号
  • 修复了mongoose@4.x修改的findOneAndUpdate第三个参数导致的更新数据失败bug
  • 修正README.md
  • 添加了集成测试

1.0.5

  • childs参数支持最多3级
  • put,patch内嵌文档时,因为mongodb问题,更新操作非原子操作。

1.0.4

  • 增加一个options参数childs,可以指定查询内嵌文档
  • 增加一个批量删除接口

1.0.3

  • 参数由原先的(server,db,modelName,schemaConfig,options)修改为(server,Model,options)
  • createAt和random字段由默认配置修改为schema动态添加
  • 如果传入的Model.schema中未设置createAt和random字段时,REST请求将无法获取这两个字段。
  • options参数增加一个字段path,标识路由路径,默认为Model.modelName,不需要加/

Installation

npm install restify-curd

使用

restify = require 'restify'
mongoose = require 'mongoose'
curd = require 'restify-curd'
 
server = restify.createServer()
db = mongoose.createConnection 'mongodb://localhost/restify-curd-test'
db.once 'open',->
    Model = db.model 'test',schema
    curd (server,Model,options)
    server.listen port,->
        console.log 'server start.'

参数

  • server object
  • Model mongoose Model
  • options object

options参数

  • list boolean 是否开放获取列表接口,默认开放
  • post boolean 是否开放新建接口,默认开放
  • get boolean 是否开放获取详情接口,默认开放
  • put boolean 是否开放修改接口,默认开放
  • patch boolean 是否开放修改接口,默认开放
  • del boolean 是否开放删除接口,默认开放
  • delAll boolean 是否开放批量删除接口,默认开放
  • path String 路由资源地址,默认为Model.modelName
  • childs Array/Object 指定一个内嵌文档字段和开放的接口

childs参数:

  • list post get put patch del delAll
  • path 内嵌文档的字段名称和路径

其他默认设置

  • 默认为schemaConfig添加createAt和random两个数字类型数字,一个标识创建资源的时间,一个为小于1的随机数字,用于获取随机数据。

GET /collection 获取列表

参数:

  • limit number
  • page number
  • sortby string 默认按createAt大小逆序排列
  • desc asc/desc
  • fields string 逗号分隔的字符串

返回:

  • count number
  • page number
  • limit number
  • sortby string
  • desc asc/desc
  • list array

POST /collection 新建

返回新建的记录

GET /collection/:id 查询指定id的记录

参数:

  • fields string 逗号分隔的字符串

PUT /collection/:id 更新指定id的记录

返回该记录信息

PATCH /collection/:id 修改指定id的记录

返回该记录信息

DELETE /collection/:id 删除指定id的记录

DELETE /collection 删除符合条件的记录

参数:

  • 所有条件作为queryString

内嵌文档

当options参数中指定了childs参数时,会自动为内嵌文档增加对应的路由

POST /collection/:id/child 新增一个内嵌文档

返回新建的记录。

GET /collection/:id/child 查询所有内嵌文档

注意该地址和父文档不同,不支持分页排序等,只会返回所有记录。

其他路由同父文档。

Readme

Keywords

none

Package Sidebar

Install

npm i restify-curd

Weekly Downloads

0

Version

1.0.8

License

ISC

Last publish

Collaborators

  • yisbug