子文件夹中的多个节点应用

时间:2014-08-21 19:09:24

标签: node.js express vhosts

我想创建一个具有以下结构的网站:

--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 ... 请帮忙!

1 个答案:

答案 0 :(得分:2)

我相信这正是你想要实现的目标。 (不使用vhost)

<强> 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);