0

ファイルをベンダー API にアップロードし、応答データ (バイナリ データとして送信される .png ファイル) を画像ファイルに保存できるようにすることを目標に、Node.js でさまざまなモジュール/メソッドを検索してテストしてきました。ほとんどの例は、ファイルを 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>

ここに私のNode/Formidable/Requestコードがあります:

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);
});

この時点で、(png ファイルの) 応答を Azure に保存できるという最終目標を持って、Node.js を使用してファイルを POST できれば満足です。

4

0 に答える 0