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

Sails.js路由参数含小数点不匹配致404问题求助

解决Sails.js 1.5.1路由参数含小数点/逗号返回404的问题

问题原因

Sails.js默认会将包含小数点的URL判定为静态资源请求,优先尝试在静态资源目录(如assets/)中查找对应文件,找不到则返回404,不会走你定义的自定义路由。这就是参数不带小数点时请求正常、带小数点时返回404的核心原因。

解决方案

方案1:针对单个路由关闭静态资源检查

在路由配置中添加skipAssets: true,强制该请求跳过静态资源检查,走自定义路由逻辑:

'get /test/len/:abc': {
   controller: 'TestController',
   action: 'len',
   skipAssets: true
}

方案2:为路由参数指定明确匹配正则(可选增强)

如果需要严格限制参数格式,可以同时为abc参数添加正则匹配规则,确保只接收包含负号、小数点、逗号和数字的字符串:

'get /test/len/:abc([-.,\\d]+)': {
   controller: 'TestController',
   action: 'len',
   skipAssets: true
}

验证修改

修改路由后,发起请求/test/len/-2.2,3.2,5.4即可正常路由到TestController的len动作,你可以在控制器中通过req.param('abc')获取完整的参数字符串,再进行拆分和处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:02:58