Express API - 验证req.body元素

时间:2016-02-11 16:24:33

标签: javascript node.js express

使用express和node.js构建api。

我正在进行基本验证,并希望验证传入的项目是否存在且是否安全(除客户端验证外)。

所以我有以下几点:

router.post('/register', function(req, res) {

  for (var itemsFromBody in req.body){
    console.log(itemsFromBody);

}

然而,当我检查控制台时,我看到的是钥匙的名称,例如用户名,电子邮件等,而不是价值本身。

我如何获得这些?

此外,我将对这些进行验证,例如确保它不是空的 - 我是否需要遵循一个简单的if-then语句,或者是否存在一些允许我验证的不错的npm包?

谢谢!

2 个答案:

答案 0 :(得分:2)

for (var itemsFromBodyIndex in req.body){
    if (req.body.hasOwnProperty(itemsFromBodyIndex)) {
       console.log(req.body[itemsFromBodyIndex]);
    }
}

这应该有效!

有用的链接:

如果需要所有字段,那么错误捕获器会如何进入循环?

for (var itemsFromBodyIndex in req.body){
    if (req.body.hasOwnProperty(itemsFromBodyIndex)) {
        console.log(req.body[itemsFromBodyIndex]);

        if(req.body[itemsFromBodyIndex] == null){
            // handle empty field            
        }

    }
}

答案 1 :(得分:0)

如上所述,for -- in只会为您提供密钥。您需要使用这些键来获取值

for (var itemsFromBody in req.body){
    console.log("Key: " + itemsFromBody + " Value: " + req.body[itemsFromBody]);
}