koa-router 多域名路由配置求助
最近使用koa-router 碰到了个问题,nginx 配置了 xx.com 和 admin.xx.com 指向同一个项目,路由配置如下:
routerConfig.js
var Router = require('koa-router');
var wwwController = require('./www/controller/index');
var adminController = require('./admin/controller/index');
var wwwRouter = new Router();
var adminRouter = new Router();
wwwRouter.get('/', wwwController.show);
adminController.get('/', adminController.list);
module.exports.www = wwwRouter;
module.exports.admin = adminRouter;
app.js
var routerConfig = require('routerConfig');
var Router = require('koa-router')();
for(var _router in routerConfig) {
Router.use(routerConfig[_router].routes());
}
app.use(Router.routes());
现在访问 xx.com 是正常的,但是访问 admin.xx.com 还是匹配到了 wwwRouter 的 / ,查了下 koa-router 的 wiki ,貌似只能通过给 adminRouter 加 prefix 解决,但是这样子的话 admin.xx.com 的路由就统一多了个 prefix ,请教下大家有没有办法可以通过 host 配置,或者是我这写的不对?谢谢。
另外,我昨天改cnode密码的邮件到现在都没收到。。。
5 回复
@ncuzp 多谢回复,我是在同一个项目下分不同的app目录,但是启动的时候是一个启动文件,同时定义了前后台的所有路由,想通过host区分前后台,再加上路由定位到不同的app,你的意思是分成两个不同的项目么?
@wk472150269 是的,看起来你的是不同的域名访问同一个项目,你的app只是你自己逻辑上的划分,实际访问的还是同一个应用, 不好区分的,要不你就后台开多个api进程然后根据不同的host访问不同的api进程数据 😄