0

我花了几个小时试图弄清楚发生了什么,但我找不到让它工作的方法。我正在使用 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 来验证输入字段,所以我很自然地编写了下面的代码来验证字段passwordpassword_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 开发的新手,我对调试不太了解。

任何帮助将不胜感激 :)

4

0 回答 0