Функции Azure анализируют данные формы с помощью node-formidable

Вот небольшая функция 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;
};

В строке со стрелкой в ​​коде выдается ошибка TypeError: req.on не является функцией. Не уверен, что делать, любая помощь будет оценена.

2 ответа

Поскольку вы используете готовые к использованию Azure, доступные пакеты вам не помогут, поскольку в классическом веб-сервере файл поступает в виде фрагмента на сервере, поэтому для извлечения данных на сервере используются "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

Метод, который вы вызываете здесь в огромном, ожидает объект req require('http') - однако объект запроса здесь не тот (как вы можете видеть, не имеет подобного req.on() или других методов). Я не достаточно знаком с этим пакетом, чтобы знать, есть ли способ предоставить тело запроса (что имеет этот объект req) и все еще анализировать или нет.

Подробности об объекте req, передаваемом в эту функцию, находятся здесь

Другие вопросы по тегам