https://github.com/open-node/open-rest-helper-assert
https://github.com/open-node/open-rest-helper-assert
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/open-node/open-rest-helper-assert
- Owner: open-node
- Created: 2016-08-28T13:07:17.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-24T06:05:15.000Z (almost 8 years ago)
- Last Synced: 2024-10-30T02:42:56.640Z (8 months ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# open-rest-helper-assert
open-rest 的 helper 插件,用来对某些值做断言
[](https://travis-ci.org/open-node/open-rest-helper-assert)
[](https://codecov.io/gh/open-node/open-rest-helper-assert)# Node version
>= 6# Usage
```bash
npm instsall open-rest-helper-assert --save
``````js
const rest = require('open-rest');
const assert = require('open-rest-helper-assert')(rest);// assert Equivalent to rest.helper.assert
```## assert.equal
判断某两个值是否相等,相等则通过,不等则输出错误信息
```js
// keyPath 从req上获取某个值的路径,例如: 'params.id', 'hooks.user.name', 分别代表读取 req.params.id, req.hooks.user.name
// obj 需要比较的值,有两种情况
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// error 如果不想等报的错误,Error类型assert.equal(keyPath, obj, error);
// return
// function(req, res, next) { ... };//or 链式调用
assert
.equal
.keyPath('hooks.user.role')
.obj({fixed: 'admin'})
.error(new restify.ForbiddenError('您没有权限执行该操作'))
.exec();
```## assert.notEqual
判断某两个值是否不等,不等则通过,相等则输出错误信息```js
var assert = require('open-rest-helper-assert');// keyPath 从req上获取某个值的路径,例如: 'params.id', 'hooks.user.name', 分别代表读取 req.params.id, req.hooks.user.name
// obj 需要比较的值,有两种情况
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// error 如果不想等报的错误,Error类型assert.notEqual(keyPath, obj, error);
// return
// function(req, res, next) { ... };//or 链式调用
assert
.notEqual
.keyPath('hooks.user.role')
.obj({fixed: 'admin'})
.error(new restify.ForbiddenError('您没有权限执行该操作'))
.exec();
```## assert.has
判断某个值是否包含在另外一个Object, Array, Set, Map 中,包含则通过,不包含则输出错误信息```js
var assert = require('open-rest-helper-assert');// obj1 被包含的值
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// obj2 判断的对象
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// error 如果不想等报的错误,Error类型assert.has(obj1, obj2, error);
// return
// function(req, res, next) { ... };//or 链式调用
assert
.has
.obj1({path: 'user.role'})
.obj2({fixed: new Set(['member', 'admin'])});
.error(new restify.ForbiddenError('您没有权限执行该操作'))
.exec();
```## assert.notHas
判断某个值是否包含在另外一个Object, Array, Set, Map 中,不包含则通过,包含则输出错误信息```js
var assert = require('open-rest-helper-assert');// obj1 被包含的值
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// obj2 判断的对象
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// error 如果不想等报的错误,Error类型assert.notHas(obj1, obj2, error);
// return
// function(req, res, next) { ... };//or 链式调用
assert
.notHas
.obj1({path: 'user.role'})
.obj2({fixed: new Set(['member', 'admin'])});
.error(new restify.ForbiddenError('您没有权限执行该操作'))
.exec();
```## assert.exists
判断某个值是否存在,不存在则报错```js
var assert = require('open-rest-helper-assert');// keyPath 从req上获取某个值的路径,例如: 'params.id', 'hooks.user.name', 分别代表读取 req.params.id, req.hooks.user.name
// error 如果不想等报的错误,Error类型, 默认值: new restify.NotFoundError('Resource not found.')assert.exists('hooks.users', error);
// return
// function(req, res, next) { ... };//or 链式调用方式
assert
.exists
.keyPath('hooks.users')
.error(new restify.ForbiddenError('您没有权限执行该操作'))
.exec();
```