回答原始问题:
但是,NodeJS 的多部分表单数据解析器都是以
httpserver 或 expressJS 中间件。
是否有任何可用的工具可以解析多部分表单数据
在从功能应用程序的所有接收到之后
包装?
即使在您问了这个问题 2 年后,多部分表单数据解析器的状态也不是很好,就像您注意到它们中的大多数假设 req 对象是一个流并且教程/演示展示了如何解析多部分/表单数据使用 express 或 httpServer。
但是有一个 parse-multipart npm 包可以处理来自 azure 函数的 req.body 并返回对象数组,其代码类似于以下:
const multipart = require("parse-multipart");
module.exports = function (context, request) {
context.log('JavaScript HTTP trigger function processed a request.');
// encode body to base64 string
const bodyBuffer = Buffer.from(request.body);
const boundary = multipart.getBoundary(request.headers['content-type']);
// parse the body
const parts = multipart.Parse(bodyBuffer, boundary);
context.res = { body : { name : parts[0].filename, type: parts[0].type, data: parts[0].data.length}};
context.done();
};
(原文来源:https://www.builtwithcloud.com/multipart-form-data-processing-via-httptrigger-using-nodejs-azure-functions/)
我注意到parse-multipart 可能会遇到困难的一个领域是解析带有文本字段的表单。一个稍微改进的版本可以更好地处理它称为multipart-formdata:
require('multipart-formdata').parse(req.body, boundary)
//returns [{field, name, data, filename, type}, ...] where data is buffer you can use to save files