我目前给出了下面的代码来获取一个值数组作为查询参数(在Node-express,nodejs v14.17和OpenAPI版本3.0.1中),
- name: abcd
description: abcd
in: query
required: false
schema:
type: array
items:
type: string
字符串
但是它只在至少有两个值的情况下才将req作为数组发送(类型为object
)。对于单个值,类型为string
。如何始终将req作为数组本身获取?
x1c 0d1x的数据
例如,如果我给予一个值,
“你好”,console.log(typeof(req.query["abcd"]),req.query["abcd"])
O/P:string Hello
但如果我给予“你好”和“世界”
O/P:object ['Hello','World']
1条答案
按热度按时间3qpi33ja1#
正如this answer解释的那样,当一个查询参数传递一个单一的值时,例如
?abcd=hello
,Express将其解析为常规值(即字符串)而不是数组。要传递一个单值数组,你需要在查询参数名的末尾追加
[]
,即?abcd[]=hello
。这意味着你需要在OpenAPI文件中更改参数名:字符串