Node.js

Express 接口网关设计

为什么需要接口网关

当项目对接多个外部平台(飞书、微信、PDF 生成等)时,直接暴露各服务会导致鉴权逻辑分散、配置难以统一。引入接口网关可以集中处理通用逻辑。

1. 基础架构

使用 Express 作为网关入口,通过中间件链处理请求:

const app = express();
app.use(express.json());
app.use(cors());
app.use('/api', feishuRoutes);
app.use('/api', wechatRoutes);

2. 会员鉴权中间件

在路由层加入统一的会员校验,避免每个接口重复编写:

const check = checkMemberValid(memberKey, apiPath);
if (!check.valid) return res.status(403).json({ code: 403, msg: check.msg });

3. 多租户配置

通过 memberKey 区分不同租户,动态加载对应的 App ID、Token 等配置,实现一套代码服务多个客户。

4. 进程管理

生产环境使用 PM2 管理进程,配合 watch 与 ignore_watch 实现热重载,同时保证日志与临时文件不被监听。

小结

接口网关的核心价值在于「收口」——把鉴权、跨域、日志、路由统一在一处处理,让业务接口专注于自身逻辑。

← 返回文章列表