将 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)中访问服务器端变量[关闭]