首页 > 解决方案 > 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"发生 a。

这种行为背后的潜在逻辑是什么?

标签: typescriptexpressnestjshandler

解决方案


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

这是你应该如何根据关于路由参数的 NestJS 文档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 文档非常好和完整,请不要犹豫阅读有关控制器的文档


推荐阅读