首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Express.js或Connect.js中配置多个子域

如何在Express.js或Connect.js中配置多个子域
EN

Stack Overflow用户
提问于 2011-04-26 21:43:39
回答 6查看 60.6K关注 0票数 61

我习惯于使用httpd ( Apache ),它提供了一种配置映射到目录的子域的方法。我如何在Connect.js/Express.js中做同样的事情?我看到我唯一拥有的是路由,我不确定如何使用它来配置子域。我有像m.mysite.com,sync.mysite.com这样的子域

有人能帮帮忙吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-26 23:09:55

或者,您也可以使用vhost

然后,在自己的目录中创建几个站点,并导出express应用程序,例如。/path/to/m/index.js

代码语言:javascript
复制
var app = express()
/* whatever configuration code */
exports.app = app
// There is no need for .listen()

然后使用以下app处理所有请求:

代码语言:javascript
复制
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可以是绝对路径(如上所述),也可以是相对路径。

票数 129
EN

Stack Overflow用户

发布于 2011-04-26 22:25:54

您可以将子域附加到请求,然后在后续的next()调用中检查它。

我从> http://groups.google.com/group/express-js/browse_thread/thread/b04bbaea7f0e8eed获得了以下代码(因此完全归功于原始作者)

代码语言:javascript
复制
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 
});
票数 25
EN

Stack Overflow用户

发布于 2014-04-27 23:06:15

我最近遇到了这个问题,并使用express 4. https://www.npmjs.org/package/express-subdomain编写了一个模块来帮助解决这个问题。

示例- api子域。

代码语言:javascript
复制
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上的模块以查看更多示例。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5791260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档