在Node.js中获取/发布多部分数据

时间:2014-11-01 09:01:39

标签: ios node.js

我正在编写一个Node.js服务器,它将与iOS应用程序通信,我将向服务器发送图像和文本。如何在我的Node应用程序中获取/ POST多部分请求?任何指向资源的指针都会非常感激。我正在阅读很多关于multipart-form的内容,但我不认为表格是我想要的,因为我没有网页...感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果从HTML表单发布,或者使用其他某种机制与服务器端无关。它不关心谁发布,它是如何编码的(多部分形式是正确的)。

在Node.js中,您可以使用Formidable来解码传入的数据。基本蓝图就像是

function handleUpload (req, res) {

    var form = new formidable.IncomingForm({
        multiples: false,
        uploadDir: uploadDir,
        keepExtensions: true,
        maxFieldsSize: 1024,
        maxFields: 100,
        maxFileSize: maxFileSize,
        maxFormSize: maxFormSize
    });

    form.parse(req, function (err, fields, files) {
        if (err) {
            logger.debug('Form processing done. Found error: ' + util.inspect(err));
            res.render('error', { error: err});
        } else {
            logger.debug('RECEIVED FIELDS ---------------------');
            logger.debug(util.inspect(fields));
            logger.debug('RECEIVED FILES  ---------------------');
            logger.debug(util.inspect(files));

            res.render('done', { fields: fields, files: files});
        }

    });
};

您可以找到a complete example here。我将它作为一种原始的脚手架用于我自己的项目。它是一个基于Express4的小型多部分表单上传示例,使用Formidable进行表单解析。 See this file for details.