0

エンド ユーザーが Web アプリケーションを介してファイルをアップロードします。これにはBlueimp jQuery Fileuploadを使用します。

サーバー側では、アップロードされたファイルを私が使用しているクラウドベースのファイル サービスにパイプするformidableを使用します。

コードは次のとおりです-

//The function called when file is uploaded
function (req, res) {
    var form = new formidable.IncomingForm();
    form.parse(req);

    form.on('file', function (name, file) {
        //Code that uploads the file to the cloud based hosting service
        //Once uploaded, we return with the response
        res.send(201, data)
    });
}

ただし、クラウドベースのホスティング サービスにアップロードするコードには時間がかかります (ファイル サイズによって異なります)。私がやりたいことは、ファイルがクラウドにアップロードされるのを待たずに、すぐに戻ることです。つまり、いわばバックグラウンドでクラウドへのアップロードを行います。

res.send(201, data)イベントの外側に移動しfileて関数の最後に配置すると、「要求タイムアウト - 応答なしで接続が閉じられました」というエラーが発生します。

「バックグラウンド」でアップロードを実行し、すぐに戻るにはどうすればよいですか?

4

1 に答える 1

0

エクスプレスを使用する場合は、おそらく次のことができます。

function (req, res, next) {
    var form = new formidable.IncomingForm();
    form.on('file', function (name, file) { });
    form.parse(req);

    next(req, res);
}
于 2015-01-10T11:07:19.813 に答える