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

Mongoose POST接口validTill字段Cast to Number失败NaN问题排查求助

问题根因

  • 字段不匹配:你请求参数里携带的是validTill时间戳,但业务代码全程读取的是receivedData.validDays字段,你没有传递该字段,所以numberOfDaysToAdd取值为undefined
  • 计算逻辑错误:执行someDate.getDate() + undefined得到的结果是NaN,传入setDate后日期对象失效,调用getTime()返回NaN,而你的Ban模型中validTill定义为Number类型,写入NaN时触发类型转换报错
  • 你传入的validTill参数全程没有被代码使用,所以直接传日期类型也无法解决问题

修复方案

根据你的业务需求二选一即可:

方案1:调整请求参数(保留代码当前逻辑)

如果业务逻辑是前端传递封禁天数,就把请求参数里的validTill替换为数字类型的validDays,示例:

{"plrID": "1", "key": "abc", "validDays": 7, "reason": "test"}

方案2:修改业务代码(使用前端传递的时间戳)

如果业务逻辑是前端直接传递到期时间戳,删掉代码中所有手动计算someDate的逻辑,直接使用你传入的validTill,注意转换为数字类型:

// 替换原有计算逻辑
const validTill = Number(receivedData.validTill)
// 后续数据库操作直接使用validTill变量即可

优化建议

新增参数校验逻辑,在接口入口处判断必填参数是否存在、格式是否合法,不满足要求直接返回参数错误提示,便于快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:09:04