使用变量子域进行通配符路由

时间:2015-07-10 10:11:43

标签: node.js express subdomain

我想创建一个使用动态/变量子域进行路由的快速应用程序。这就是我想要做的事情:

  • .col-sm-3half, .col-sm-8half { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; } @media (min-width: 768px) { .col-sm-3half, .col-sm-8half { float: left; } .col-sm-3half { width: 29.16666667%; } .col-sm-8half { width: 70.83333333%; } } 应将请求转发给http://<username>.mysite.dev

users/index.js我将通过users/index.js访问用户名。如果我还可以在req.subdomain[0]上运行正则表达式检查,那就太好了。

我的第一个方法:

我正在使用节点包<username>来路由请求:

express-subdomain

这种方法的问题是/* import node packages */ var express = require('express'), subdomain = require('express-subdomain'); /* application config */ var app = express(), port = process.env.PORT || 3000; /* import all apps */ var users = require('./users/index.js'); /* route requests by subdomain */ app.use(subdomain('*', users)); app.get('/', function(req,res) { /* Never get here */ res.send('Homepage'); }); /* run app on given port */ app.listen(3000, function() { console.log('Listening on port ' + port + ' ...'); }); 无法正常工作。即使没有子域名(*),它也会将所有请求转发给users/index.js。如果我改变这样的路由,那么这个问题的一个解决方案就是:

http://mysite.dev

因此,我可以访问app.use(subdomain('*.users', users)); users/index.js,当没有子域名时,我也可以访问正常网站。但这种方法并不是我想要的 - http://<user>.users.mysite.dev子域太多了。另外我不能使用正则表达式。

现在,我正在为这个问题寻找更好的解决方案。

0 个答案:

没有答案
相关问题