- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在nodejs中我们通常会做这样的事情:
req.checkBody('name', 'Group name is required.').notEmpty();
同样,我也做了这样的事情:
req.checkBody('parent.name', 'Parent Name and group name should be different.').checkEquality(name);
这里检查相等性是中间件中定义的函数,如下所示:
app.use(expressValidator({
customValidators: {
checkEquality: function(firstInput, secondInput) {
return firstInput.toLowerCase() != secondInput.toLowerCase();
}
}
}));
正如您在上面的代码中看到的,checkEquality 只是一个函数,如果firstInput 等于secondInput,则返回该函数。
如果 req.body.parent 是一个对象,那么
一切顺利,所有验证根据需要成功通过或失败。
如果 req.body.parent 是字符串,则
我收到一条错误消息,指出firstInput.toLowerCase() 不是函数。
该错误有点令人困惑,但我知道该错误的含义:该错误意味着firstInput 未定义,并且undefine 没有函数toLowerCase。
另外,我知道如果 req.body.parent 是一个字符串,那么parent.name 将始终是未定义的。
所以,我尝试了:
req.checkBody(('parent.name' == undefined ? 'parent' : 'parent.name'), 'Parent Name and group name should be different.').checkEquality(name);
但还是没有运气。遇到同样的错误。
我的意思是仍然使用这段代码,如果 req.body.parent 是一个对象,我会让一切顺利进行。但如果 req.body.parent 是一个字符串,那么一切都会很糟糕,并会出现如上所述的错误。
最佳答案
答案比我想象的要简单:
我需要先像这样检查一下:
if(req.body.parent.name == undefined) { //That means parent is a string
req.checkBody('parent', 'Parent Name and group name should be different.').checkEquality(name);
} else { //That means parent is an object
req.checkBody('parent.name', 'Parent Name and group name should be different.').checkEquality(name);
}
关于javascript - 检查 req.checkBody() 内的 req.body.property.childProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752506/
我正在按照 Mozilla Express 教程 (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/
我正尝试在注册系统中实现一些验证,但出现错误: TypeError: req.checkBody is not a function 来自以下代码: module.exports = fun
我已经尝试解决这个问题 2 个小时了,但我有点沮丧。基本上,我想验证表单输入,但我总是收到此错误。 TypeError: req.checkBody is not a function at C:\U
TypeError: req.checkBody is not a function at C:\techscape\nodeauth\routes\users.js:41:7 at
我在使用快速验证器时遇到问题,特别是 isDate 函数。我已经采取措施使用 expressvalidator、bodyparse、validator 模块等。所有路由仅在此之后..环境是 Node
在nodejs中我们通常会做这样的事情: req.checkBody('name', 'Group name is required.').notEmpty(); 同样,我也做了这样的事情: req.
我是一名优秀的程序员,十分优秀!