xiongwilee / Gracejs

A Nodejs BFF framework, build with koa2(基于koa2的标准前后端分离框架)
https://grace.wilee.me
MIT License
1.39k stars 238 forks source link

关于vhost: '127.0.0.1/test':'demo_test' #17

Closed vance-liu closed 7 years ago

vance-liu commented 7 years ago

首先,非常感谢你提供这么棒的项目! 对于vhost有点疑问,如果这么配置'127.0.0.1':'blog',不会出现问题,现在我配置'127.0.0.1/other':'other',但是 127.0.0.1:3000/other 无法访问。 再解释下就是,希望127.0.0.1:3000访问blog项目,通过127.0.0.1:3000/other访问other项目。 还有就是能不能贴一下你的blog的配置呢?

xiongwilee commented 7 years ago

你是用的v2.x版本吧? 刚刚加了一个示例: 参考config/main.development.js:

  vhost: {
    '127.0.0.1': 'demo',
    'localhost': 'blog',
    'feclub.cn': 'blog',
    'localhost/test': 'test'
  },

访问:localhost:3000/test指向test项目,其他的都会指向blog项目

vance-liu commented 7 years ago

貌似不行呢,访问localhost:3000/test,显示not fund,我删除localhost:blog,再把localhost/test:test修改为localhost/blog:blog,还是不行呢,是我姿势不对?

xiongwilee commented 7 years ago

应该是访问:localhost:3000/test/或者localhost:3000/test/*才行 , 如果只有/test是不会匹配到子模块的

vance-liu commented 7 years ago

@xiongwilee 没用啊,还是Not Found!你那边可以么?

xiongwilee commented 7 years ago

我没问题。

还有个细节,如果你把子目录指向blog的话,blog模块下的controller必须也在blog目录下;

如果还是不行,打log看下,子模块匹配的源码在这里,很简单:https://github.com/xiongwilee/koa-grace/blob/v2.x/middleware/vhost/index.js#L51-L75 ;看下分析hostname和path的流程,然后把日志贴出来我看看?

vance-liu commented 7 years ago

现在是这样,app下面有两个一样的demo项目名字分别是demo和demo2,访问localhost:3000能正常访问到demo项目,调试信息如下: image 但是访问localhost:3000/demo2/,就是Not Found!访问localhost:3000/demo2/*也是一样的,调试信息如下: image 我的环境是node v5.12.0

xiongwilee commented 7 years ago

这个应该是走到了子模块 ,但是你的子模块下找不到文件,所以返回Not found!;你把你demo2的目录结构和index.js文件内容贴出来看看?

vance-liu commented 7 years ago

demo和demo2项目就是koa-grace原有的demo!

xiongwilee commented 7 years ago

, 确定地址没有问题?

vance-liu commented 7 years ago

我看明白是什么意思了,重新克隆了项目修改了下,app目录如下 image 配置如下: image

非常感谢你,之前遇到的问题是子目录找不到的问题,现在重新测试了下test,访问localhost:3000/test/index可以运行,目录指向test=》controller=》test=》index.js下,默认为index方法,访问localhost:3000/test/index/index也是可以的!现在想问下,我如何能路由到hello=》controller=》home.js呢?

vance-liu commented 7 years ago

非常nice的项目,希望尽快升级^v^

xiongwilee commented 7 years ago

DONE 。 参考配置:https://github.com/xiongwilee/koa-grace/blob/v2.x/config/main.development.js#L17-L22 然后就可以生成子模块顶级路由:https://github.com/xiongwilee/koa-grace/blob/v2.x/app/test/controller/home.js#L2-L6