2016-03-03 84 views
0

定义我的路由时,我希望能够验证传入参数是否为数组,如果不是,则会引发错误。到目前为止,我一直在使用express-form进行所有验证,并且似乎无法找到验证阵列的方法。我知道我可以使用express-validate这样做,但我想继续使用迄今为止使用的内容,以便所有内容看起来均匀。如何验证表单中的数组

app.post(
    '/addUserInfo', 
    form(
     field('userID').trim().required().is(idRegex) 
     // Need similar check for 'items' field here 
    ), 
    offline.addUserInfo 
); 

回答

1

它在docs

您可以使用:

更新 正如在评论中提及的值是字符串,需要被解析到阵列

field('items').custom(function(value){ 

    // check if value is array, throw error if not 

    //if(value instanceof Array) return; 

    if(JSON.parse(value) instanceof Array) return; 

    throw new Error('The field "items" is not an array'); 

}); 
+0

哎呀,我想我错过了。我通过将'if'更改为'JSON.parse(value)instanceof Array'来得到这个结果。谢谢 :) – Ali