1、背景
由于在开发的过程中,我们经常需要访问测试/正式环境,会出现线上正常,本地访问不同
2、方案
方法一:
我们可以通过node作为中间件,解决这一问题。示例如下:
var express = require('express');
const { createProxyMiddleware} = require('http-proxy-middleware');
var app = express();
app.use('/api/', createProxyMiddleware({
target: 'https://xxx.xxx.com/',
secure:false,
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}));
app.listen(3000); console.log('Proxy server is listen at port 3000...');
针对以上说明:
"/api"的,接口以”/api”开头的才用代理,所以写请求接口时要使用“/api/xx/xx”的形式,使用代理后生成的请求路径就是’http://localhost:3000/api/xx/xx’.
"pathRewrite"里面的意思是:当实际需要请求的路径里面没有”/api“时. 就需要 pathRewrite,用’’^/api’’:’’, 把’/api’去掉, 这样既能有正确标识, 又能在请求到正确的路径。
我们通过访问浏览器在地址栏输入http://localhost:3000,测试我们的配置的代理是否生效。
然后,我们在开发的过程中就可以用http://localhost:3000来代替我们之前访问的api地址。