尝试将 Node.js (Express) 设置为与虚拟主机一起使用,并遇到意外错误
Posted
技术标签:
【中文标题】尝试将 Node.js (Express) 设置为与虚拟主机一起使用,并遇到意外错误【英文标题】:Trying to setup Node.js (Express) to work with vhosts, and getting unexpected errors 【发布时间】:2013-06-02 00:29:55 【问题描述】:我正在尝试将其设置为与几个虚拟主机一起使用,以便我可以通过一个节点应用程序管理所有内容;但我一直收到此错误。
现在已经很晚了,所以我的思想不是 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);
如果我使用node app
手动运行第一个虚拟主机应用程序,它运行良好。
【问题讨论】:
您在每个 .use 行之后都缺少一个右括号。 【参考方案1】:正如 Brett 指出的那样,您缺少最后一个括号:
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);
【讨论】:
谢谢 - 我犯了愚蠢的错误。这绝对是我超级累的事实。以上是关于尝试将 Node.js (Express) 设置为与虚拟主机一起使用,并遇到意外错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 node.js (express) 中全局设置内容类型
使用 Node.js 和 Express 将 JSON 数据集显示为表格
Node.js / Express with vhost 与 Sails.js 框架应用程序冲突
Node.js-express框架-cookie设置参数详解和举例