azure-函数多相
解析 Azure 函数多段/形式数据的模块.
说明: Will也会在任何节点的 HTTP 请求对象上工作, 将 Azure 函数的 Httprequest 对象放在一边, 因为此软件包是基于 busboy .
安装
npm i @anzp/azure-function-multipart
实例
解析 Azure 函数的多段/形式数据 。 这将返回解析过的字段和文件作为响应 .
用于类型脚本 :
import { AzureFunction, Context, HttpRequest } from "@azure/functions";
import parseMultipartFormData from "@anzp/azure-function-multipart";
const httpTrigger: AzureFunction = async function (
context: Context,
req: HttpRequest
): Promise<void> {
const { fields, files } = await parseMultipartFormData(req);
context.log("HTTP trigger function processed a request.");
const name = req.query.name || (req.body && req.body.name);
const responseMessage = {
fields,
files,
};
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage,
};
};
export default httpTrigger;
对于 Java 脚本 :
const parseMultipartFormData = require("@anzp/azure-function-multipart")
.default;
module.exports = async function (context, req) {
const { fields, files } = await parseMultipartFormData(req);
context.log("HTTP trigger function processed a request.");
const name = req.query.name || (req.body && req.body.name);
const responseMessage = {
fields,
files,
};
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage,
};
};
使用 CURL 请求客户端示例 :
curl --request POST \
--url http://localhost:7071/api/HttpTrigger1 \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form update=false \
--form collection=@/Users/anzhari/masterdata/managements.json
这是客户端收到的例子:
{
"fields": [
{
"fieldname": "update",
"value": "false",
"fieldnameTruncated": false,
"valueTruncated": false,
"encoding": "7bit",
"mimetype": "text/plain"
}
],
"files": [
{
"fieldname": "file",
"bufferFile": {
"type": "Buffer",
"data": [91, 10, ...10, 93]
},
"filename": "managements.json",
"encoding": "7bit",
"mimetype": "application/json"
}
]
}
也可以通过 巴士男孩构造器配置 作为可选参数:
import { AzureFunction, Context, HttpRequest } from "@azure/functions";
import parseMultipartFormData from "@anzp/azure-function-multipart";
const httpTrigger: AzureFunction = async function (
context: Context,
req: HttpRequest
): Promise<void> {
// Set the max number of non-file fields to 1 (Default: Infinity).
const config = {
limits: { fields: 1 },
};
const { fields, files } = await parseMultipartFormData(req, config);
context.log("HTTP trigger function processed a request.");
const name = req.query.name || (req.body && req.body.name);
const responseMessage = {
fields,
files,
};
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage,
};
};
export default httpTrigger;