今天同事問我他遇到前端設定 API proxy 搞不定,於是我只好翻出好久以前自己做的紀錄來處理。
https://www.youtube.com/?gl=TW&tab=w1
...
// javascript
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.use('/api', createProxyMiddleware({ target: 'http://www.example.org', changeOrigin: true }));
app.listen(3000);
// http://localhost:3000/api/foo/bar -> http://www.example.org/api/foo/bar
從上面的程式碼可以歸納出以下步驟:
createProxyMiddleware
/api
),將 createProxyMiddleware
帶入一些選項之後套用到 Express 的路由上target:
目標 host
changeOrigin:
需不需要轉來源(通常用在要跨域的情況下,所以給 true)
pathRewrite:
改寫路徑,如下的寫法,會將你 /old-path 的 request 都轉給 /new-path '^/api/old-path': '/api/new-path'
https://www.npmjs.com/package/http-proxy-middleware#http-proxy-middleware-options