【问题标题】:Multiple node apps in sub folders子文件夹中的多个节点应用程序
【发布时间】:2014-10-15 13:10:34
【问题描述】:

我想创建一个具有这种结构的网站:

--mysite.com   
--mainserver.js  
-----mysite.com/project1  
-----server.js  
-----mysite.com/project2  
-----server.js

在每个项目文件夹中,我想运行一个单独的节点应用程序。我试图使用vhost 模块来做到这一点。 在我的 mainserver.js 中,我有这个要测试:

var express = require("express");
var app = express();
var router = express.Router();
var vhost = require('vhost');

var app2 = express();
    app2.get('/', function(req, res) {
        res.send("echo");
    });
app.use(vhost('localhost/project1', app2));

app.get('/', function(req, res) {
    res.send("hi");
});

var port = Number(process.env.PORT || 5000);
app.listen(port, function() {
  //console.log("Listening on " + port);
});

导航到 localhost:8000 时,我看到了“hi”。但是当我导航到 localhost:8000/project1 我得到Cannot GET /test... 请帮忙!

【问题讨论】:

  • 您是否需要多个 Express 应用而不是使用路由器?
  • 我希望能够做一些“干净”的项目来学习东西。当然,我可以将所有内容保存在一个 server.js 文件中,但一段时间后它会变得很大。还是我错过了什么? :p

标签: node.js express vhosts


【解决方案1】:

我相信这就是您想要实现的目标。 (不使用虚拟主机)

project1/index.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {
  return res.send('project 1');
});

// Other routes specific to project 1 here

module.exports = router;

Project2 可以类似地设置。

server.js

var express = require('express');
var app = express();

app.use('/project1', require('./project1'));

app.use('/project2', require('./project2'));

var port = Number(process.env.PORT || 5000);
app.listen(port);

【讨论】:

  • 哦!好的。唔。但是假设我希望 project1 能够登录并使用一些包并具有不同的配置。我能做到吗?
  • 这个方法可以隔离中间件和路由。你必须更具体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 2017-07-10
  • 2010-11-20
  • 2015-01-11
  • 2021-07-17
  • 1970-01-01
相关资源
最近更新 更多