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,打完收工,有什么问题可以下面留言,欢迎提问!