请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

nest.js restfull api 遇到问题

老师我是 java 后台 再跟您是频学习前端,今天跟着视频学习遇到个问题。
图片描述图片描述
例如图中的 getUserByToken 方法,现在这个方法是所有方法置顶的,但是如果将 这个方法 和 下面的其他方法调整顺序,请求这个接口的时候就会报错。
{
“message”: “Validation failed (numeric string is expected)”,
“error”: “Bad Request”,
“statusCode”: 400
}
不知道是什么问题,是 nest.js 这个 restfull api 有特殊的顺序要求吗?

正在回答 回答被采纳积分+3

2回答

_Jack_Han_ 2023-11-16 22:58:00

接口路由匹配优先级的原因,/info/:id 放在上面,发起请求 /info 接口,id没有获取到就会抛出你贴出来的异常;/info 放在上面就会优先匹配,此时就没有参数问题了。

0 回复 有任何疑惑可以回复我~
扬_灵 2023-06-26 21:37:18

同学你好,这里不是很理解你的意思,可以详细说一下吗,接口的定义是没有顺序要求的。

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕工程530275 #1
    就是这个 UserController 定义了很多方法,我尝试着变换了每个方法的顺序,但是发现只有 这个getUserByToken 方法 在 所有方法的 最上方的时候,接口才可以正常调用,其他的时候就是返回 bad request,不知道是什么原因...
    回复 有任何疑惑可以回复我~ 2023-06-26 21:40:40
  • 提问者 weixin_慕工程530275 #2
    而且有个现象是,虽然返回 bad request 但是 这个请求仍然会进入 auth.guard.ts 验证逻辑,但是,哪怕 验证返回的 true ,也无法进入 真正的 UserControll 的 getUserByToken方法。
    回复 有任何疑惑可以回复我~ 2023-06-26 21:42:39
  • 扬_灵 回复 提问者 weixin_慕工程530275 #3
    同学你好,方便提供一下完整的测试代码吗,我在本地帮你测试定位一下。
    回复 有任何疑惑可以回复我~ 2023-06-28 20:53:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信