【发布时间】:2021-01-21 03:31:53
【问题描述】:
我正在为我的 api 使用 this 样板。
我有以下路线:GET /questions
在这条路线中,我不想动态获取数据中的关系,例如GET /questions?relations=user?relations=answer。这工作得很好,但是当我不只想要一个关系时,例如GET /questions?relations=user 我收到以下错误:
{
"name": "ParameterParseJsonError",
"message": "Given parameter relations is invalid. Value (\"user\") cannot be parsed into JSON.",
"errors": []
}
这是请求:
@Get()
public find(@QueryParam('relations') relations: string[]): Promise<Question[]> {
return this.questionService.find(relations);
}
问题似乎是,它将查询参数识别为字符串而不是字符串数组,因此无法将其转换为数组。我的下一个想法是创建一个如下的联合类型:
public find(@QueryParam('relations') relations: string[] | string): Promise<Question[]> {
let _relations: string[] = [];
if (typeof relations === 'string') {
_relations.push(relations);
} else {
_relations = relations;
}
return this.questionService.find(_relations);
}
这仍然不能解决我的问题。当我向一个关系提出请求时,我仍然得到同样的错误。我该如何解决这个问题?
【问题讨论】:
标签: typescript express routing-controllers