- 依赖第三方模块 http-proxy-middleware 先下载
// 什么是代理?
// 由于前端的浏览器的同源策略,导致前端不能请求不同源的地址, 这是由于浏览器的同源策略导致的
// 前端解决跨域的方式
// 第一种方式: jsonp
// 第二种方式:服务器代理
// node 服务器要实现代理需要使用第三方模块,http-proxy-middleware
// 首先需要安装 npm install http-proxy-middleware
// 导入到项目中 const httpproxymiddleware = require('http-proxy-middleware);
// 导入 http 模块, 搭建服务器
const http = require('http');
// 导入fs 模块
const fs = require('fs');
// 导入代理模块
const httpproxymiddleware = require('http-proxy-middleware');
// console.log(httpproxymiddleware);
const app= http.createServer((req, res) => {
if (req.url == '/') {
let data = fs.readFileSync('./ajax.html')
res.end(data)
} else if (req.url == '/api') {
// createProxyMiddleware 方法创建代理 参数为一个配置对象
// 参数1 :target: '目标地址',
// 参数2 :changeOrigin:true,
// 参数3 :pathRewrite:{'将当前地址':''} 将当前地址替换成''
// 该方法 返回一个函数,
let fn = httpproxymiddleware.createProxyMiddleware({
target: 'https://www.baidu.com/',
changeOrigin: true,
pathRewrite: {
'/api': ''
}
})
// console.log(11, fn);
// 使用该函数处理这次请求,将req 和res 作为实参传入该函数中,
fn(req, res)
} else {
res.end('123')
}
})
app.listen(8000)