MDN express 教程中使用的 express-validator

express-validator used in MDN express tutorial

Express MDN 教程here 使用以下代码进行验证步骤

// Validate that the name field is not empty.
body('name', 'Genre name required').isLength({ min: 1 }).trim(),

我不明白的是为什么 trim()isLength() 验证之后链接 。是不是应该相反,或者两者的语义相同?

我确实尝试在 express-validator 文档中四处寻找类似的内容,但没有成功。

更新

针对 gustavohenke 的回答,我认为让我感到困惑的是,我看到了两个清理点,如下面的 MDN Express 教程屏幕截图所示:

所以当我阅读 express-validator "If you use any of the sanitizers together with validators, the validated value is the sanitized one" 的验证文档时,我想知道哪个消毒点?

然而,根据我的特点,快速教程中的文档(说验证步骤中的消毒剂仅适用于该验证步骤并且不会改变请求,因此需要另一个消毒剂) 不再 为真。换句话说,我认为你可以在一个链中完成所有的清理和验证。

首先要弄清楚:trim 是消毒剂,而不是验证器,例如 isLength

目前(截至v5.x.x),当您在同一链中同时指定消毒器和验证器时,消毒器将始终 运行 在验证者之前。如果您指定更多消毒剂,它们将按指定顺序 运行。

It's documented behaviour,但是很容易看不出来:

If you use any of the sanitizers together with validators, the validated value is the sanitized one.

正如您可能已经猜到的那样,这让用户感到惊讶,it's planned to change on an upcoming major version