我花了几个小时试图弄清楚发生了什么,但我找不到让它工作的方法。我正在使用 pug、express 和 express-validator。
首先,我在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')并且它有效,所以我真的不知道这里发生了什么。
如果这是一个愚蠢的问题,我真的很抱歉,我是 Web 开发的新手,我对调试不太了解。
任何帮助将不胜感激 :)