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

FeathersJS报Invalid query parameter $dis错误如何解决?

问题根因

FeathersJS 后端默认会拦截所有以$开头的查询参数,只有框架内置支持、或开发者手动配置到白名单中的参数才会被放行。你提到的$includeEc没有触发报错,是因为原有代码已经将该参数加入了服务的允许参数列表,而$dis未被加入所以触发了非法参数校验。

解决方案

仅需要在后端servicerequest服务的配置中添加$dis到参数白名单即可,无需修改现有前端请求逻辑:

  1. 找到后端servicerequest服务的注册代码,在参数白名单配置中新增$dis,示例如下:
// Feathers v4/v5 服务注册示例
app.use('servicerequest', createService({
  // 原有服务配置项
  whitelist: ['$includeEc', '$dis'] // 原有已包含$includeEc,追加$dis即可
}))
  1. 如果你使用了Feathers自带的Schema校验(TypeBox/Joi 定义查询参数规则),还需要在查询参数Schema中添加$dis的类型定义:
// 示例为TypeBox定义的查询Schema
const servicerequestQuerySchema = Type.Object({
  // 原有其他查询参数定义
  $include: Type.Optional(Type.Boolean()),
  $includeEc: Type.Optional(Type.Boolean()),
  $limit: Type.Optional(Type.Number()),
  $dis: Type.Optional(Type.Number()) // 新增该行定义$dis参数
}, { additionalProperties: false })
  1. 若项目使用自定义钩子过滤查询参数,找到对应过滤逻辑,不要删除$dis参数即可。

配置完成后前端原有请求逻辑无需变动,$dis参数可以正常传递到后端供校验逻辑使用,也不会再触发无效查询参数报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:04