node跨域轉發 express+http-proxy-middleware

愚坤發表於2018-05-31

最近公司在嘗試前後端分離的開發模式,現有應用是java語言,要從中間拆除一個小的模組來做前後端分離,工具上還是jquery,只不過是流程和分工上的分離,不想在前端的機器上搭建一套java環境,就根據教程搭了一下轉發,讓本地可以接上開發伺服器聯調。

建立專案

npm init
複製程式碼

安裝模組

npm install express connect-timeout http-proxy-middleware  --save-dev
複製程式碼

建立js檔案

<!--proxy-server.js-->
const express = require('express');
const timeout = require('connect-timeout');
const proxy = require('http-proxy-middleware');
const app = express();

// 超時時間
const TIME_OUT = 30 * 1e3;

// 設定埠
app.set('port', '80');

// 設定超時 返回超時響應
app.use(timeout(TIME_OUT));
app.use((req, res, next) => {
  if (!req.timedout) next();
});


proxyOption = {
	target: 'http://localhost:8080',
	pathRewrite: {
        '^/api/' : '/'  // 重寫請求,api/解析為/
    },
    changeOrigoin:true
};

// 靜態資源路徑
app.use('/', express.static('src/page'));

// 反向代理
app.use('/api/*', proxy(proxyOption));

// 監聽埠
app.listen(app.get('port'), () => {
  console.log(`server running @${app.get('port')}`);
});

複製程式碼

相關文章