然后現在問題又來了,在生產環境下接口一般采用https協議,如果我們要把數據請求轉發到生產服務器上怎么辦?
首先會想是不是把上一篇博文中提到的proxyTable改成https就可以了,如下:
proxyTable: {
'/appserver/SinglePowerStation': 'https://www.yourserver.com',
'/appserver/powerStationManage': 'https://www.yourserver.com',
},
但是其實是不行的,轉發不成功。
然后就到google上去搜索http-proxy-middleware,結果在第3項中看到了proxy-middleware(
https://www.npmjs.com/package/proxy-middleware ),點進去一看,一上來就是https的例子:
ar connect = ;
var url = ;
var proxy = ;
var app = ;
app;
// now requests to '/api/x/y/z' are proxied to 'https://example.com/endpoint/x/y/z'
//same as example above but also uses a short hand string only parameter
app;
雖然官方只說可以給connect庫使用,不過因為express對於middleWare的接口要求和connect相同,都是:
function (req, resp, next)
這就好辦了,直接在我們的項目中引入該模塊試試就知道了,於是:
1)在項目目錄下
npm install proxy-middleware --save-dev
2)將build/dev-server.js中的proxyMiddleware改名為httpProxyMiddleware,並修改代碼中的所有地方:
var httpProxyMiddleware = require('http-proxy-middleware')
3)在build/dev-server.js中引入proxy-middleware
var proxyMiddleware = require('proxy-middleware')
4)刪掉原來根據proxyTable創建middleware的代碼
5)在上述刪掉的位置添加如下代碼;
app.use('/appserver/initerce1', proxyMiddleware('https://www.yourserver.com/appserver/
initerce1
'))
app.use('/appserver/
initerce2
', proxyMiddleware('https://www.yourservere.com/appserver/
initerce2
'))
——————完——————