0

我一直在搜索和测试 Node.js 中的各种模块/方法,目的是能够将文件上传到我的供应商 API 并将响应数据(这是作为二进制数据发送的 .png 文件)保存到图像文件中。大多数示例演示如何将文件上传到 Web 目录,而不是 Web 服务。Formidable ( https://github.com/felixge/node-formidable ) 是一个很容易存储在 Web 目录中的示例,但我不知道如何将表单数据简单地发送到 Web 服务.

我已经研究过使用请求(https://github.com/request/request)来发布文件,但是对于在他们的表单示例中放入什么感到困惑,特别是在这里:

// Pass a simple key-value pair
my_field: 'my_value',

我目前的尝试是混合使用强大和请求,但失败并出现以下错误:

TypeError:无法读取 null 的属性“hasOwnProperty”

我的 HTML 表单如下:

<form action="/upload4" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>

这是我的节点/强大/请求代码:

app.post('/upload4', function (req, res) {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        var options = {
            contentType: files.myfile.type,
            metadata: { fileName: files.myfile.name }
        };
        request.post({ url: 'http://myendpoint.net/uploadPDF', formData: form }, function optionalCallback(err, httpResponse, body) {
            if (err) {
                return console.error('upload failed:', err);
            }
            console.log('Upload successful!  Server responded with:', body);
            var options = { contentType: 'image/png' };
            blobSvc.createBlockBlobFromText(containerName, 'Reponse.png', body, options, function (error, result, response) {
        if (!error) {
            // Response from POST was uploaded to Azure as a PNG file
            res.send(result);
        } else {
            console.log(error);
        }
    });
        });
    console.log(req);
});

在这一点上,我很高兴能够使用 Node 发布我的文件,最终目标是能够将(png 文件的)响应保存到 Azure。

4

0 回答 0