You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在express-subdomain中为同一子域名配置多个路由文件

解决express-subdomain下多路由文件挂载到api子域名的问题

你当前的问题在于,index.js导出的是包含两个路由对象的普通对象,但express-subdomain要求传入的是一个Express Router实例,不是这种集合对象,所以没法正确挂载。

直接修改index.js,创建一个根Router来整合两个子路由即可:

修改后的index.js

const express = require('express');
const authRouter = require("./auth.routes");
const utilsRouter = require("./utils.router");

// 创建api子域名的根路由实例
const apiRootRouter = express.Router();

// 将auth路由挂载到/api/auth路径(可根据需求调整前缀)
apiRootRouter.use('/auth', authRouter);
// 将utils路由挂载到/api/utils路径
apiRootRouter.use('/utils', utilsRouter);

// 导出整合后的根路由
module.exports = apiRootRouter;

app.js保持现有逻辑即可

var apiRouter = require("./routes/testing/index");
app.use(subdomain("api", apiRouter));

这样配置后:

  • 访问api.yourdomain.com/auth/xxx会匹配auth.routes.js里的路由
  • 访问api.yourdomain.com/utils/xxx会匹配utils.routes.js里的路由

如果不需要前缀,也可以直接把两个路由挂载到根路径(apiRootRouter.use(authRouter)),但要注意避免两个路由文件里出现相同的路径,否则会出现路由冲突。

另外要确保express-subdomain的注册顺序在其他普通路由之前,这样子域名的路由会优先匹配。

内容的提问来源于stack exchange,提问作者Marco Gatto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:05:57