Rak*_*aks 54 subdomain node.js express connect.js
我习惯于使用httpd(Apache),它提供了一种配置映射到目录的子域的方法.我如何在Connect.js/Express.js中做同样的事情?我看到我唯一拥有的是路由,我不知道如何使用它来配置子域.我有像m.mysite.com,sync.mysite.com这样的子域名
有人可以帮忙吗?
Adr*_*ien 118
或者你可以使用vhost.
然后,在他们自己的目录中创建几个站点并导出快速应用程序,例如./path/to/m/index.js:
var app = express()
/* whatever configuration code */
exports.app = app
// There is no need for .listen()
然后使用以下应用处理所有请求:
var vhost = require('vhost');
express()
.use(vhost('m.mysite.com', require('/path/to/m').app))
.use(vhost('sync.mysite.com', require('/path/to/sync').app))
.listen(80)
注意,/path/to/m并且/path/to/sync可以是绝对路径(如上所述)或相对路径.
nee*_*ebz 19
您可以将子域附加到请求,然后在后续next()调用中检查它.
我从http://groups.google.com/group/express-js/browse_thread/thread/b04bbaea7f0e8eed获得了以下代码(因此完全归功于原作者)
app.get('*', function(req, res, next){ 
  if(req.headers.host == 'some.sub.domain.com')  //if it's a sub-domain
    req.url = '/mysubdomain' + req.url;  //append some text yourself
  next(); 
});
// This will mean that all get requests that come from the subdomain will get 
// /subdomain appended to them, so then you can have routes like this 
app.get('/blogposts', function(){ 
  // for non-subdomain 
});
app.get('/mysubdomain/blogposts', function(){ 
   // for subdomain 
});
bmu*_*n91 14
我最近遇到了这个问题,并编写了一个模块来帮助使用express 4. https://www.npmjs.org/package/express-subdomain.
示例 - api子域.
var express = require('express');
var app = express();
var router = express.Router();
//api specific routes
router.get('/', function(req, res) {
   res.send('Welcome to our API!');
});
router.get('/users', function(req, res) {
    res.json([
        { name: "Brian" }
    ]);
});
app.use(subdomain('api', router));
app.listen(3000);
查看npm上的模块以查看更多示例.
| 归档时间: | 
 | 
| 查看次数: | 48361 次 | 
| 最近记录: |