node.js - Express.js 虚拟主机子域设置

标签 node.js express subdomain vhosts

尝试设置连接的虚拟主机中间件。希望得到一些帮助。

我有正常的 express.js 应用程序,其中包含 node_modules、public、views 和 routes 目录。我在包含另一个 express.js 应用程序的目录旁边添加了另一个目录。

我已将此行添加到我的顶级应用程序 (tedxgramercy):

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

这条线到我的聊天应用程序:

var app = exports.app = express();

chatter 应用程序在端口 8000 上调用监听,主要(顶级)应用程序调用在端口 3000 上监听。我不知道这是否正确。

当我启动我的应用程序( Node 应用程序)时,它运行良好,我可以分别在 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);

我包含了路由器,以表明在配置虚拟主机之后使用它是至关重要的。

然后,在 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 模板的最低限度设置。请注意,应用程序已导出,但实际上并没有启动服务器,因为主应用程序是服务器。

关于node.js - Express.js 虚拟主机子域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212952/

相关文章:

express - 如何修改 Pino express 日志上的日志字段

javascript - 如何向外部 API 发出 GET 和 POST 请求?

javascript - Node JS 具有 oracleDB 可重用功能

cookies - 如何阻止子域使用域 cookie?

javascript - Node.js 架构和性能

node.js - npm config-全局vs本地

javascript - Nodejs读取外部图像并写入为pdf

javascript - 有没有办法在 CronJobs 中获取毫秒数?

linux - 如何在 Ubuntu VPS 上创建带密码的子域

apache - 使用 Apache mod_rewrite 相关问题到文件夹的子域