typescript - 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。
这种行为背后的潜在逻辑是什么?
解决方案
要获取您的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 文档非常好和完整,请不要犹豫阅读有关控制器的文档
推荐阅读
- windows - Powershell - 检查文件是否存在并包含字符串模式
- java - 在 PhoneStateListener 中的 Android Pie 中拨打电话时如何获取拨出电话号码?
- python - 如何将csv文件(utf-8)导入gephi
- python - (Excel) 访问 CodeModule 时 VBA 崩溃
- matlab - 如何在集群/非序列图上使用 splitapply/findgroups?
- android - 将 BATCH_TO_SPACE_ND 和 SPACE_TO_BATCH_ND 添加到 tensorflow lite
- apache-camel - Apache Camel:拆分后如何保留原始附件?
- ios - 强制 WKWebview 总是以横向模式和全屏播放视频 url?
- angular - 角度 setTimeOut() 无法正常工作
- c# - 在编辑中进行特定更改时调用操作