Express.js vhost子域设置

尝试设置连接的虚拟主机中间件。 会喜欢一些帮助。

我有我的正常express.js应用程序,与node_modules,公共,视图和路线目录。 我已经添加了另一个目录旁边的那些持有另一个express.js应用程序。

我已经添加了这一行到我的顶级应用程序(tedxgramercy):

app.use(express.vhost('chatter.tedxgramercy.com', require('./chatter/app.js').app)); 

而这一行我的聊天应用程序:

 var app = exports.app = express(); 

聊天应用程序调用监听端口8000,主要(顶级)应用程序调用监听端口3000.我不知道是否是正确的。

当我启动我的应用程序(节点应用程序),它运行良好,我可以访问localhost:3000和localhost:8000两个应用程序分别,但是当我部署到我的服务器,子域http://chatter.tedxgramercy.com不工作。

任何指针? 我必须改变我的DNS指向其他端口或什么?

这是一个简单的,但有点棘手的设置。

首先,主要的app.js

 var vhost = require('vhost'); app.use(vhost('chatter.tedxgramercy.com', require('./chatter/app').app)) app.use(router); 

我包括了路由器,以明确configuration虚拟主机之后使用它是至关重要的。

然后,在chatter/app.js

 var express = require('express'); var app = express(); var path = require('path'); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); var router = express.Router(); router.get('/', function(req, res, next) { res.render('index'); }); app.use(router); exports.app = app; 

这是在子应用程序中呈现Jade模板的最低设置。 注意,应用程序是导出的,但没有服务器实际上启动,因为主要的应用程序是服务器。