You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为express-validator添加自定义链式值修改函数?

使用express-validator自定义参数值修改方法

当然可以实现,你需要用customSanitizer方法,而非用于验证的custom——trim、escape这类方法本质上属于参数清理器(sanitizer),customSanitizer就是express-validator提供的自定义清理逻辑的接口,专门用来修改参数值并覆盖原始来源。

示例代码如下:

route.post('/landing-pages/:link/blocks',
[
    param('link')
        .trim()
        .escape()
        .isString()
        .customSanitizer((value, { req, location, path }) => {
            // 在这里对参数值进行任意修改,返回修改后的结果即可
            // 示例1:替换所有下划线为横杠
            return value.replace(/_/g, '-');
            
            // 示例2:移除特定前缀(比如"temp-")
            // return value.replace(/^temp-/, '');
            
            // 示例3:转为全小写
            // return value.toLowerCase();
        })
],
controller.addBlocks);

说明:

  • customSanitizer的回调函数接收两个参数:当前的参数值,以及包含req(请求对象)、location(参数位置,比如param)、path(参数名,比如link)的上下文对象。
  • 你只需在函数内完成值的修改逻辑,返回修改后的结果,express-validator就会自动将这个结果替换掉原始的参数值。后续的验证步骤、控制器中获取的req.params.link都会是修改后的值。

内容的提问来源于stack exchange,提问作者Reza Amya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:51:24