[英]Why cannot find argument in nest.js
When I develop API
by nestjs
, I suffered following errors
.当我使用
nestjs
开发API
,我遇到了以下errors
。
It seems argument must be defined.似乎必须定义参数。
Here is my controller.ts
这是我的
controller.ts
@Get()
getdata(@Query() query: { place: string}){
return this.eventService.getEvent(place);
}
Here is my service.ts
这是我的
service.ts
async getEvent(eventPlace: string): Promise<any>{
const event = await this.eventRepository
.find({
where: {
place: eventPlace,
},
});
Here is my error
这是我的
error
src/event/event.controller.ts:24:39 - error TS2304: Cannot find name 'place'.
24 return this.eventService.getEvent(place);
~~~~~
[4:15:34 AM] Found 1 error. Watching for file changes.
Why this argument cannot be found ?为什么找不到这个论点?
I set argument in getdata
function.我在
getdata
函数中设置了参数。 If someone has opinion, please let me know.如果有人有意见,请告诉我。
Thanks谢谢
The @Query
decorator lets you extract a specific key. @Query
装饰器可让您提取特定键。 You can just define your controller like this to get a better experience:您可以像这样定义控制器以获得更好的体验:
@Get()
getdata(@Query('place') place: string) {
return this.eventService.getEvent(place);
}
To add on to Jesse's answer, you could use object deconstructing and do something similar like要添加 Jesse 的答案,您可以使用对象解构并执行类似的操作
@Get()
getData(@Query() { place }: { place: string }) {
return this.eventService.getEvent(place);
}
This is useful when you want to validate an entire DTO, but only need some of the fields from it.当您想要验证整个 DTO,但只需要其中的某些字段时,这很有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.