使用虚拟主机中间件在 Express 中按子域指定路由
Specifying routes by subdomain in Express using vhost middleware
我正在使用vhost
快速/连接中间件,我对如何使用它有点困惑。我希望一组路由应用于具有子域的主机,另一组路由应用于没有子域的主机。
在我的应用程序.js文件中,我有
var app = express.createServer();
app.use...(middlware)...
app.use(express.vhost('*.host', require('./domain_routing')("yes")));
app.use(express.vhost('host', require('./domain_routing')("no")));
app.use...(middlware)...
app.listen(8000);
然后在domain_routing.js
:
module.exports = function(subdomain){
var app = express.createServer();
require('./routes')(app, subdomain);
return app;
}
然后在routes.js
我计划运行路由集,具体取决于传入的子域变量是"yes"
还是"no"
。
我是否走在正确的轨道上,或者这不是您使用此中间件的方式?我对正在创建两个app
服务器实例这一事实感到有点困惑(因为这就是网络上的示例似乎的工作方式)。我是否应该传入原始app
服务器实例并仅使用它而不是创建一个单独的实例而不是子域路由器?
是的,你走在正确的轨道上。每个虚拟主机应具有不同的服务器实例。无论是http.Server
还是express app
.
如果您传递原始app
,则发送到虚拟主机的请求将发送到原始应用程序。因此,除非 vhost 具有原始服务器中未使用的路径,否则它将获得响应,就好像请求已发送到原始服务器一样。
从连接文档
connect()
.use(connect.vhost('foo.com', fooApp))
.use(connect.vhost('bar.com', barApp))
.use(connect.vhost('*.com', mainApp))
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 正在使用$location.path(.)路由ng视图
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- chrome扩展更改主机/域警告
- 未激发路由的控制器属性上的观察者
- AngularJS ui路由器html5模式中断路由
- 发送json对象或使用express路由呈现视图
- 使用主干网和rails的静态页面路由
- 本地主机Typekit JS
- 如何使用Passport保护路由终结点
- 如何检查是否存在“;没有到主机的路由”;在流式传输视频的过程中一遍又一遍
- 使用虚拟主机中间件在 Express 中按子域指定路由
- Angularjs路由将仅连接到本地主机
- 花式盒子在我上传到虚拟主机后不起作用,但在本地主机上工作
- 当从主机编辑文件时,虚拟机中的Nodemon看不到更改
- 如何在apacheubuntu 12.04中为node.js创建虚拟主机
- 虚拟主机:存在时找不到JavaScript文件
- TinyMCE不能在虚拟主机上工作
- FOS JS RoutingBundle只生成本地主机的路由
- 虚拟主机服务太慢,无法运行我的JavaScript代码