Azure Functions 使用节点强大解析表单数据

imr*_*mrn 1 multipartform-data azure node.js formidable azure-functions

这是一个小的Azure功能,我正在尝试使用强大的节点获取帖子表单字段。

    module.exports = function (context, req, intable) {
    var formidable = require('formidable');
    var form = new formidable.IncomingForm(),
        fields = [];

    ----> form.parse(context.req, function(err, fields, files) {
        context.log(fields);
        context.done();
        return;
    });
    return;
};
Run Code Online (Sandbox Code Playgroud)

在代码中带有箭头的行中,它给出错误TypeError: req.on is not a function。不知道该怎么做,任何帮助将不胜感激。

小智 5

当您使用 Azure 就绪可用包时,它不会帮助您,因为在经典 Web 服务器中,文件以块的形式到达服务器上,因此“on”和“end”用于检索服务器上的数据。对于 Azure 函数,Azure 将为您解析表单并附加到 req.body 对象中,该对象是 JSON,而不是任何请求对象,因此“on”和“end”函数将不可用。

因此,您需要手动解析表单数据。

我在 AWS 和 Azure 中工作(通常我使用文本文件通过 AWS 和 Azure 上传),因此我创建了一个直到解析表单数据,您可以使用它来解析您自己的表单数据。

您可以使用相同的功能。我在 GitHub 上更新了它。

https://github.com/chandani-volansys/multipart-data-parser/blob/master/multipart.js