经常用到一些对参数的支持选项进行格式检测和设定默认值的操作,Node.js中有assert模块可以使用,也可以进行数组deepEqual的检测、正则匹配等。
此模块不做深度检测,主要是检测某一基本类型的数据是否符合要求。
安装:
npm i options-check
使用:
'use strict'
process.chdir(__dirname)
const {checkThrow, autoCheck} = require('options-check')
try {
checkThrow({min: 124, max: 345}, 123)
} catch (err) {
console.log(err.message)
}
try {
checkThrow({match: /^(12|13|14|15|16|17|18|19)[0-9]{9}$/i}, '12345678901')
console.log('ok')
} catch (err) {
console.error(err.message)
}
console.log(
'check value',
checkVal({list: ['ubuntu', 'mint', 'deepin', 'debian']}, 'debian')
)
let config = {}
console.log(autoCheck(config, 'age', {
min: 18,
max: 45,
default: 30
}, 12))
console.log(config)
checkThrow会抛出错误,autoCheck会检测并返回true或false,如果options中传递了default,则在所输入的值不合法时自动设定默认值。
属性 | 说明 | 可选值 |
---|---|---|
type | 类型,若有此字段,则会检测类型。 | 所有typeof返回的类型以及array,若是数组则需要填写array。 |
min | 最小值 | 数字或字符串。 |
max | 最大值 | 数字或字符串。 |
match | 正则表达式 | 任何合法的正则表达式。 |
list | 一个数组,传递此值,则会检测输入值是否在此列表中出现。 | 任何基本数据类型组成的数组。 |
default | 默认值,只有autoCheck用到。 | 任何值。 |
value | 确定的一个值,会进行===比较。 | 任何值。 |