https://github.com/open-node/open-rest-helper-params
https://github.com/open-node/open-rest-helper-params
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/open-node/open-rest-helper-params
- Owner: open-node
- Created: 2016-08-29T08:18:41.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-08-17T01:59:14.000Z (over 8 years ago)
- Last Synced: 2025-02-24T15:53:41.151Z (11 months ago)
- Language: JavaScript
- Size: 10.7 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# open-rest-helper-params
open-rest 的 helper 插件,用来对 req.params 进行操作处理
[](https://travis-ci.org/open-node/open-rest-helper-params)
[](https://codecov.io/gh/open-node/open-rest-helper-params)
# Node version
>= 6
# Usage
```bash
npm instsall open-rest-helper-params --save
```
```js
const rest = require('open-rest');
const params = require('open-rest-helper-params')(rest);
// params Equivalent to rest.helper.params
## params.omit
从 req.params 上去掉一些参数
```js
// keys Array 要从req.params 去掉的参数的名称
params.omit(keys);
// return
// function(req, res, next) { ... };
//or 链式调用
params
.omit
.keys(['name', 'password'])
.exec();
```
## params.required
判断某些必须的参数是否存在
```js
// keys Array 要判断的参数名称
// error 如果不想等报的错误,Error类型, 可选
params.required(keys, error);
// return
// function(req, res, next) { ... };
//or 链式调用
params
.required
.keys(['username', 'password'])
.error(new restify.MissingParameterError('用户名和密码是必填项')
.exec();
```
## params.map
根据字典将 req.params 的参数名称做个映射
```js
// dict Object {key(String) => value(String)}
params.map({email: 'username', pwd: 'password'});
// return
// function(req, res, next) { ... };
//or 链式调用
params
.map({email: 'user', pwd: 'password'})
.exec();
```
## params.assign
给指定的 req.params 某个key赋值,可以是静态的值,也可以是动态的值
```js
// keyPath 从 req.params 上的路径,例如: 'id', 'user.name', 分别代表 req.params.id, req.params.user.name
// obj 要赋的值
// 1. {path: 'params.id'} 代表值从 req.params.id 获取
// 2. {fixed: 20} 代表固定的值
// 静态值
params.assign('user.name', {fixed: 'Redstone Zhao'});
// 动态值
params.assign('user.name', {path: 'hooks.user.name'});
// return
// function(req, res, next) { ... };
//or 链式调用
params
.assign
.keyPath('user.name')
.obj({path: 'user.role'})
.exec();
```