Nest.js 中的处理程序路径

handler path in Nest.js

我有这个 PATCH 请求:http://localhost:3000/tasks/566-344334-3321/status.

使用该请求的处理程序:

@Patch('/:id/status')
updateTaskStatus() { // do stuff 
    return "got through";
}

我不了解主干部分背后的机制以及如何分配正确的处理程序来处理请求。

所以从 /566-344334-3321/status
id部分是/566-344334-3321,可以是任意值。
但是词干结尾 /status 需要正好是 /status.
如果不是,则会出现 "error": "Not Found"

此行为背后的基本逻辑是什么?

要获取 id 参数,您需要使用 @Param 装饰器将请求中的 :id 分配给打字稿编号。

这里是你应该如何根据 NestJS documentation about Route Parameters

编写你的 updateTaskStatus 函数
@Patch('/:id/status')
updateTaskStatus(@Param('id') id: number) { 
    return `Got ${id} through`;
}

如果您的问题是将 status 用作 id 之类的动态值,则需要对参数应用相同的装饰器

@Patch('/:id/:status')
updateTaskStatus(@Param('id') id: number, @Param('status') status: string) { 
    return `Got ${id} and ${status} through`;
}

NestJS 文档很好很完整,不要犹豫,阅读documentation about the controllers