如何与多个虚拟主机共享相同的nodejs端口(3000)(也是nodejs应用程序)

与节点服务器上的多个域应用程序的vhost相关,我现在面临的问题是无法调用vhost doamin的app.js,我的设置如下所示:

root folder : website vhost folder: website/vietvan vhost folder: website/thanksme 

根wbesite上的根app.js如下所示:

 var vhost = require('vhost'); // Module dependencies. var application_root = __dirname, express = require( 'express' ), vhost = require( 'vhost' ); function createVirtualHost(domainName, dirPath) { return vhost(domainName, express.static( dirPath )); } //Create server var app = express(); //Create the virtual hosts var vietvanVhost = createVirtualHost("vietvan.net","./vietvan/"); var thanksmeVhost = createVirtualHost("leean.me","./thanksme/"); //Use the virtual hosts app.use(thanksmeVhost); app.use(vietvanVhost); //Start server var port = 3000; app.listen( port, function() { console.log( 'Express server listening on port %d in %s mode', port, app.settings.env ); }); 

在vietvan文件夹下的app.js如下:

 let postRoutes = require('./routes/post'); let userRoutes = require('./routes/users'); let commentRoutes = require('./routes/comment'); let appRoutes = require('./routes/app'); let app = express(); mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost/thanksme'); console.log('connected to DB'); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hbs'); // uncomment after placing your favicon in /public app.use(favicon(path.join(__dirname, 'dist', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'dist'))); app.use(function (req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PATCH, DELETE, OPTIONS'); next(); }); app.use('/user', userRoutes); app.use('/post', postRoutes); app.use('/comment', commentRoutes); app.use('/', appRoutes); // catch 404 and forward to error handler app.use(function (req, res, next) { return res.render('index'); }); // // app.listen(3000, function () { console.log('Listening on port 3000 of vietvan.net'); // }); 

当启动节点指向根app.js我无法访问虚拟主机http://vietvan.net:3000 ,错误:无法GET /

但如果我开始节点指向/websites/vietvan/app.js或更改vietvanVhost = createVirtualHost(“vietvan.net”,“./vietvan/”); 到createVirtualHost()中的“/ vietvan / dist”,然后就可以开始在vietvan文件夹的dist文件夹中提供已编译的代码

似乎vietvan文件夹中的app.js没有工作,或没有被根app.js调用,然后问题的原因

任何人都可以帮助指出我的错误? 以及如何解决这个问题?

非常感谢你