我想创建一个使用动态/变量子域进行路由的快速应用程序。这就是我想要做的事情:
.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
子域太多了。另外我不能使用正则表达式。
现在,我正在为这个问题寻找更好的解决方案。