1.前言
万变不离其宗 有空多看看文档
2.http-proxy-middleware
这是第三方的记得安装
80服务器
// 向8080 端口发送的请求 都会被代理到9090端口 app.use('/list', createProxyMiddleware({ target: 'http://localhost:9090', changeOrigin: true }) ); app.listen(8080, function () { console.log("8080服务启动"); })
90服务器
app.get('/list', function (req, res) { res.send("<h1> list 页面</h1>") }) app.listen(9090, function () { console.log("9090服务启动"); })
3.调试
4.代理配置
好好看哦 后续vue react等框架都后台 node搭的服务 ,会配置代理的哦
// 向8080 端口发送的请求 都会被代理到9090端口 app.use('/api', createProxyMiddleware({ target: 'http://localhost:9090', changeOrigin: true, pathRewrite: { '^/api': '' } }));
5.调试
6.实战
代理服务器都是做数据周转的,那肯定有个真实的服务器
网易新闻代理
html
这个地址是假的
$.ajax({ type: "get", url: "/netease/nc/article/XXX", data: {x:10,y:20}, dataType: "json", success: function (response) { console.log(response) } });
服务器
app.use("/netease",createProxyMiddleware({ target: 'http://c.m.163.com', changeOrigin: true, pathRewrite: { '^/netease': '' } }));
百度代理
基于百度服务API来写的
因为直接ajax请求会跨域 需要代理
html
$.ajax({ type: "get", url: "/baidu/place/v2/search", data:{ query:"ATM机", tag:"银行", region:"郑州", output:"json", ak:"你自己的ak哦" }, success: function (response) { console.log("r:",response) } });
服务端
app.use("/baidu",createProxyMiddleware({ target: 'http://api.map.baidu.com', changeOrigin: true, pathRewrite: { '^/baidu': '' } }));