2016-12-17 12 views
1

Jqueryからエクスプレスサーバーにファイルを送信する状況があります。エクスプレスサーバーでファイルを解析せずにその要求を別のサーバーに転送する必要があります。ここで私は今 jqueryのエクスプレスjsから別のサーバーにファイルを転送する

$.ajax({ 
      url: 'api/auth/handle', 
      type: 'POST', 
      data: data, // formData 
      cache: false, 
      dataType: 'json', 
      processData: false, // Don't process the files 
      contentType: false, // Set content type to false as jQuery will tell the server its a query string request 
      success: function (data, textStatus, jqXHR) { 
       console.log("success"); 
      }, 
      error: function (jqXHR, textStatus, errorThrown) { 
       // Handle errors here 
       console.log('ERRORS: ' +textStatus); 
       // STOP LOADING SPINNER 
      } 
     }); 

エクスプレスjsのコード

module.exports.handleFile = (req, res) => { 
    console.log(req); 
    let data = request.post("http://localhost:5002/files/pdf", function (err, resp, body) { 
     //console.log(err); 
     if (err) { 
      console.log('Error!'); 
     } else { 
      console.log('URL: ' + body); 
     } 
    }); 
    let form = data.form(); 
    form.append('file', '<FILE_DATA>', req); 
    res.status(200).send({ "success": "success" }); 

}; 

問題は、私は私の第二のサーバー上でフォームデータを取得していない午前になるまでコードスニペットを使用していますさ。 提案が役に立ちます。ありがとう

答えて

0

Node.js/Expressのプロキシモジュールを使用することをお勧めします。だから、あなたは別のサーバーにあなたの選択の要求をリダイレクトすることができ

var proxy = require('express-http-proxy'); 

var app = require('express')(); 

app.use('/proxy', proxy('www.google.com', { 
    forwardPath: function(req, res) { 
    return require('url').parse(req.url).path; 
    } 
})); 

:利用可能の一つは、そのドキュメントからexpress-http-proxy

使用例と呼ばれています。

詳細については、https://github.com/villadora/express-http-proxyを参照してください。

+0

プロキシを設定しないと他の方法はありますか?リクエストモジュールを何らかの方法で使用することができますか? –

+0

Sry私は同じに達するためのスマートで短い解決策を知らない。代理人のやり方は私がやる方法ですが、おそらく別の解決策を持つ人がいます。 –

+0

私はプロキシに確かに試してみます。ありがとう –

関連する問題