使用express和node.js构建api。
我正在进行基本验证,并希望验证传入的项目是否存在且是否安全(除客户端验证外)。
所以我有以下几点:
router.post('/register', function(req, res) {
for (var itemsFromBody in req.body){
console.log(itemsFromBody);
}
然而,当我检查控制台时,我看到的是钥匙的名称,例如用户名,电子邮件等,而不是价值本身。
我如何获得这些?
此外,我将对这些进行验证,例如确保它不是空的 - 我是否需要遵循一个简单的if-then语句,或者是否存在一些允许我验证的不错的npm包?
谢谢!
答案 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]);
}