tobbe
tobbe

Reputation: 1807

Multiple node apps in sub folders

I want to create a site with this structure:

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

In each project folder I want to run a separate node application. Im trying to do this using vhost module. In my mainserver.js I have this to test:

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

When navigating to localhost:8000 I see the "hi". But when I navigate to localhost:8000/project1 I get Cannot GET /test... Please help!

Upvotes: 1

Views: 2390

Answers (1)

Jordonias
Jordonias

Reputation: 5848

I believe this is what you are trying to achieve. (Without use of 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 could be set up similarly.

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

Upvotes: 3

Related Questions