Nodejsvalidationnull和undefined
我尝试validationnodejs中的input,例如确保它被定义,而不是null,如果是JSON,确保它至less有一个键。 使用IF条件有一个更简单的方法,例如:
if((inputEntity == null) || (!inputEntity))
要么
if (Object.keys(inputEntity).length === 0)
我知道“validation器”包,但我不确定它是否适合我的需求。 请指教。
确保它被定义,而不是null
松散的平等:
if (x == null) { // bad value - null or undefined }
或严格平等:
if (x === null || x === undefined) { // bad value - null or undefined }
这不会做你想要的:
if((inputEntity == null) || (!inputEntity))
因为它会匹配0,空string和false
,不仅null
和undefined
。
在JSON的情况下,确保它至less有一个键
要检查JSON是否至less有一个键,需要先用JSON.parse()
parsingJSON,然后检查生成的对象。
要检查一个对象是否至less有一个键:
if (typeof x === 'object' && Object.keys(x) === 0) { // object has no keys }
如果您正在validation您不知道是对象的input,但是您不想拒绝那些报告没有密钥的数字,则需要使用types检查。 这只是一个猜测,如果你想要或没有,你没有提供足够的信息让我们知道肯定。
与空对象比较会更容易,但不能使用==
或===
。 你需要一个库像lodash或一些断言库,testing框架等。例如,与lodash它将是:
if(_.isEqual(x, {})) { // object has no keys }
请参阅: https : //lodash.com/
现在,如果你认真的inputvalidation,然后使用像Joi:
它可以让您非常精确和容易地指定您的具体validation规则。