node中有很多解決服務器代理的插件,這里簡介一個:express-http-proxy
之前網上查的使用node解決跨域的插件,有很多,例如,cors,koa2,這里解決跨域問題我拿原生解決的,express-http-proxy作為服務器代理器來解決服務器代理的,一開始直接npm安裝,引入,配置,一頓操作猛如虎,結果還是報錯,最后發現才是版本為題,高版本不支持,后來改用1.6.0版本就好了,代碼如下:
const express = require('express');
const cors = require('cors');
const app = express();
const proxy = require("express-http-proxy");
//解決跨域問題
// 開發環境設置,生產環境需要配置安全的參數
app.use(cors());
// 反向代理(這里把需要進行反代的路徑配置到這里即可)
let opts = {
preserveHostHdr: true,
reqAsBuffer: true,
reqBodyEncoding: null,
//轉發之前觸發該方法
proxyReqPathResolver: function (req, res) {
//這個代理會把匹配到的url(下面的 ‘/api’等)去掉,轉發過去直接404,這里手動加回來,
req.url = req.baseUrl + req.url;
return require("url").parse(req.url).path;
},
};
app.get('/', function (req, res) { res.status(200).send('hello itas109'); });
app.use("/api", proxy("http://*********.com", opts));
app.listen(8080);
OK,打完收工,有什么問題可以下面留言,歡迎提問!