将 Node.js 的 Express 与 vhost 一起使用时出现意外错误

Posted

技术标签:

【中文标题】将 Node.js 的 Express 与 vhost 一起使用时出现意外错误【英文标题】:Unexpected error using Node.js's Express with vhosts 【发布时间】:2014-07-12 03:29:14 【问题描述】:

这是错误:

代码如下:

runapps.js:

var express = require('express');

var app = express();
var first  = require('./apps/ghost_gforce/index.js').app;
var second = require('./apps/ghost_blog2/index.js').app;

app
.use(express.vhost('gforce/main', first))
.use(express.vhost('gforce/blog2', second))
.listen(80);

像下面这样直接从节点运行它可以完美地工作:

node apps\ghost_gforce\index.js

更新::跑:

npm install 

在节点应用程序目录中,所以应该不会丢失任何内容。

提前致谢!

【问题讨论】:

既然您似乎已将 Express 更新到 4.x,vhost will no longer be bundled。现在需要分别安装its own package 和require()。有关详细信息,请参阅migration guide。 【参考方案1】:

在您的测试中,您调用的是相对路径:

apps\ghost_gforce\index.js

但在您的代码中,您使用的是基于文件系统根目录的路径:

/apps/ghost_blog2/index.js

试试这个:

var first  = require('./apps/ghost_gforce/index.js').app;
var second = require('./apps/ghost_blog2/index.js').app;

【讨论】:

啊!你打败了我来更新我的问题。我确实尝试过,但现在我收到错误消息:“错误:大多数混杂软件(如 vhost 不再与 Express 捆绑在一起,必须单独安装。”这很奇怪,因为我运行了 npm install 命令来安装所有所需的模块。

以上是关于将 Node.js 的 Express 与 vhost 一起使用时出现意外错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试将 Node.js (Express) 设置为与虚拟主机一起使用,并遇到意外错误

Node.js / Express with vhost 与 Sails.js 框架应用程序冲突

在Javascript(node.js,express.js,ejs)中访问服务器端变量[关闭]

有哪些关于 Node.js 以及 Express 的书籍

node.js 与 express 如何从 url 中删除查询字符串

node.js gridform + express