尝试设置Node.js(Express)以使用vhost,并获得意外错误

时间:2013-06-06 05:57:06

标签: javascript node.js express vhosts

我正在尝试将其设置为使用几个虚拟主机,以便我可以通过单节点应用程序管理所有内容;但我一直在收到这个错误。

现在已经很晚了,所以我的思绪不是100%,但希望有人可以看到我不知道的东西。

/vhosts/app.js:13
.listen(3000);
             ^
SyntaxError: Unexpected token ;
    at Module._compile (module.js:437:25)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

以下是代码:

var express = require('express');

var app = express();

app
.use(express.vhost('localhost', require('/first/vhost/app.js').app)
.use(express.vhost('localhost2', require('/second/vhost/app.js').app)
.listen(3000);

第一个vhost应用运行正常,如果我通过node app手动运行它。

1 个答案:

答案 0 :(得分:0)

正如布雷特指出的那样,你错过了最后一个支架:

var express = require('express');

var app = express();

app
.use(express.vhost('localhost', require('/first/vhost/app.js').app))
.use(express.vhost('localhost2', require('/second/vhost/app.js').app))
.listen(3000);

您不应在Connect中间件中使用require。通过这种方式,它也更容易被发现: - )

var express = require('express');

var app = express();
var first = require('/first/vhost/app.js').app;
var second = require('/second/vhost/app.js').app;

app
.use(express.vhost('localhost', first))
.use(express.vhost('localhost2', second))
.listen(3000);