获取 POST 参数
当使用 POST 请求调用云函数时,HTTP Request Body 会被转化为对应云函数中的
params
变量,方便开发者获取和使用。
根据请求 Content Type 的不同,
params
也会有不同的类型。
application/json
application/json
为最常用的请求数据类型,此时
params
的类型为
Object
,其值是对 Request Body 使用
JSON.parse
得到的。
例如,对于如下云函数:
部署后,携带
application/json
类型的数据发送 POST 请求:
会得到如下结果:
multipart/form-data
multipart/form-data
一般用于上传文件,此时
params
的类型为
Object
,并以 Key-Value 的形式直接对应请求数据。对于文件,其数据结构如下:
例如,对于如下云函数:
部署后,携带
multipart/form-data
类型的数据发送 POST 请求:
会得到如下结果:
提示
如果想详细了解如何从浏览器上传文件,并保存到 AirCode 的文件存储中,可参考教程: 上传文件 - 在浏览器中上传 。
application/x-www-form-urlencoded
当请求的 Content Type 为
application/x-www-form-urlencoded
时,
params
的类型为
Object
,其值是对 Request Body 使用
querystring.parse
得到的。
提示
当使用
application/x-www-form-urlencoded
时,所有参数对应的值均为
string
或
Array<string>
类型,即传递
a=1
时
params.a === '1'
。
例如,对于如下云函数:
部署后,携带
application/x-www-form-urlencoded
类型的数据发送 POST 请求:
会得到如下结果:
text/plain
text/plain
一般用于发送纯文本内容,此时
params
的类型为
string
,代表该文本的内容。
例如,对于如下云函数:
部署后,携带
text/plain
类型的数据发送 POST 请求:
会得到如下结果:
其他类型
当使用其他类型(例如
application/octet-stream
)时,
params
的类型为
Buffer
,代表请求的原始二进制数据。
例如,对于如下云函数:
部署后,携带
application/octet-stream
类型的数据发送 POST 请求:
会得到如下结果: