@anzp/azure-function-multipart

中文文档
3.1.0发布于 2022/06/22SEE LICENSE IN LICENSETypeScriptCommonJS近 30 天下载 1.6万

Module to parse multipart/form-data on Azure Functions.

原始使用文档

azure-function-multipart

Build and Test codecov Codacy Badge npm downloads

Module to parse multipart/form-data on Azure Functions.

Note: Will also works on any Node's HTTP request object, asides of Azure Functions' HttpRequest object, as this package is based on busboy.

Install

npm i @anzp/azure-function-multipart

Examples

Parsing multipart/form-data on Azure Function. This will return the parsed fields and files back as the response.

For TypeScript:

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;

For JavaScript:

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,
  };
};

Example client request using 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

This is the example reponse received on the client:

{
  "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"
    }
  ]
}

You can also pass busboy constructor config as an optional parameter:

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;

版本与发布记录

@anzp/azure-function-multipart 共发布 20 个版本,首次发布于 2021/04/06;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.1.0latest2022/06/224 年前
3.0.02022/05/274 年前
2.0.02022/02/014 年前
1.2.12021/11/025 年前
1.2.02021/11/015 年前
1.1.32021/07/115 年前

关于 @anzp/azure-function-multipart 的常见问题

@anzp/azure-function-multipart 是什么?

Module to parse multipart/form-data on Azure Functions.

如何安装 @anzp/azure-function-multipart?

在项目目录运行 npm install @anzp/azure-function-multipart,或使用 pnpm add / yarn add / bun add。

@anzp/azure-function-multipart 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@anzp/azure-function-multipart 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@anzp/azure-function-multipart 可以商用吗?

@anzp/azure-function-multipart 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@anzp/azure-function-multipart 的下载量有多少?

根据 npm 官方下载统计,@anzp/azure-function-multipart 在 2026/10/06 – 2026/11/04 这 30 天内被下载 16,405 次,日均约 547 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anzp/azure-function-multipart 还在维护吗?

最新版本 3.1.0 发布于 2022/06/22(4 年前);至今共发布 20 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/04/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。