1

axiosを使用してノード サーバーに要求を行い、ノード サーバーが別のJava サーバーに要求を行うアプリケーションがあります。

クライアントからノード サーバーへの呼び出し:

// here payload is FormData()
axios.post(url, payload).then((response) => {
    return callback(null, response);
}).catch((err) => {
    return callback(err, null);
});

node serverで、 busboyを使用してリクエストをリッスンします。

let rawData = '';
const busboy = new Busboy({headers: req.headers});

busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {
    file.on('data', function (chunk) {
        rawData += chunk;
    });
});

これで、Java サーバーも FormData を予期します (ノードに送信したのと同じように)。ノードから FormData を取得するにはどうすればよいですか? 私は一生懸命グーグルで検索し、無駄に多くのことを試してきました。バスボーイを含まない解決策も役に立ちます。

4

1 に答える 1

1

最後に、リクエスト オブジェクトからreq.filesとしてファイルを取得するためのサポートを追加するミドルウェアbusboy-body-parserを使用しました。ファイルがそこにあると、form-data npm パッケージを使用して、それをフォームデータとして Java Web サーバーに送信します。req.filesサポートは、デフォルトでExpress.jsに存在していました。しかし、4.x からは非推奨になりました。

Multerは、 multipart/form-dataを処理するためのもう 1 つの非常に優れたミドルウェアです。

于 2016-06-21T09:03:57.070 に答える