返回

Express + http-proxy-middleware——Node.js 跨域转发的魔法武器

前端

在前后端分离的开发模式中,前端和后端往往部署在不同的服务器上。由于浏览器的同源策略限制,前端请求后端资源时可能会遇到跨域问题。为了解决这个问题,我们需要使用跨域转发代理服务器来转发前端请求到后端服务器。

Express 是一个流行的 Node.js 框架,提供了丰富的中间件支持。http-proxy-middleware 是一个 Express 中间件,可以轻松地实现跨域转发。

配置 Express + http-proxy-middleware

  1. 安装 Express 和 http-proxy-middleware
npm install express http-proxy-middleware
  1. 创建 Express 应用
const express = require('express');
const app = express();
  1. 使用 http-proxy-middleware 配置跨域转发
const proxy = require('http-proxy-middleware');

app.use('/api', proxy({
  target: 'http://localhost:3000', // 后端服务器地址
  changeOrigin: true, // 允许跨域
}));
  1. 启动 Express 应用
app.listen(8080, () => {
  console.log('Server listening on port 8080');
});

这样,我们就搭建了一个跨域转发代理服务器。前端请求通过代理服务器转发到后端服务器,从而解决了跨域问题。

示例代码

以下是使用 Express + http-proxy-middleware 实现跨域转发的完整示例代码:

const express = require('express');
const proxy = require('http-proxy-middleware');

const app = express();

app.use('/api', proxy({
  target: 'http://localhost:3000', // 后端服务器地址
  changeOrigin: true, // 允许跨域
}));

app.listen(8080, () => {
  console.log('Server listening on port 8080');
});

总结

通过使用 Express 和 http-proxy-middleware,我们可以轻松地实现跨域转发,从而解决前端与后端分离时的跨域问题。这种方法简单易用,并且支持多种配置选项,可以满足不同的跨域转发需求。