2016-12-17 101 views
1

我有一種情況,即將文件從Jquery發送到我的express服務器,並且我需要將該請求傳輸到另一臺服務器而不解析express服務器中的文件。這裏是代碼片段我已經使用到現在 jQuery的將文件從express 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的代理模塊。一個可用的被稱爲express-http-proxy

用法示例從他們的文檔:

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

所以,你可以重定向你的選擇到另一臺服務器的請求。

有關更多信息,請參見https://github.com/villadora/express-http-proxy

+0

有沒有其他方式沒有設置代理?可能以某種方式使用請求模塊? –

+0

Sry我不知道任何聰明的,短的解決方案達到相同的。代理方式就是我要去的方式,但也許有人有不同的解決方案。 –

+0

我會給代理一個確定的嘗試。謝謝 –

相關問題