我花了几个小时试图弄清楚发生了什么,但我找不到办法让它发挥作用。我正在使用哈巴狗,快递和快递验证员。
首先,我在 form.pug 文件中定义了输入:
div.form-group
label(for='password') Password:
input#password.form-control(type='password' name='password' placeholder='Password' required='true')
div.form-group
label(for='password_conf') Password confirmation:
input#password_conf.form-control(type='password' name='password_conf' placeholder='Password confirmation' required='true')
然后,我有一个名为 userController.js 的文件,它基本上与数据库交互。正如我之前所指出的,我正在使用express-validator来验证输入字段,所以我自然而然地编写了下面的代码来验证字段 password 和 password_conf 是否相同如果密码的长度大于8:
body('password_conf')
.isLength({ min: 8 }).withMessage('The password must have at least 8 characters.')
.equals(body('password')).withMessage('The passwords do not match.')
对我来说似乎是对的,但始终会触发错误“密码不匹配”。我验证了POST请求,字符串没有问题。我已经为一个虚拟字符串更改了 body('password')并且它有效,所以我真的不知道这里发生了什么。
如果这是一个愚蠢的问题,我真的很抱歉,我是网络开发的新手,我对调试知之甚少。
任何帮助将不胜感激:)