12

我正在尝试在节点中使用 Express,安装一切正常,编译,获得 npm 并安装 express:

npm 安装快递

问题是,每次我尝试“要求”它时,它都会给我一个错误!看一下,一个简单的文件 app.js 为:

var express = require('express');

当我运行它时:

tlab065:~/proj/Express-server-abstraction> node app.js 
node.js:116
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (/people/home/jdomingues/local/node/lib/node/.npm/express/1.0.7/package/lib/express/server.js:87:44)    
    at Module._compile (module.js:373:26)
    at Object..js (module.js:379:10)
    at Module.load (module.js:305:31)
    at Function._load (module.js:271:10)
    at require (module.js:317:19)
    at Object.<anonymous> (/people/home/jdomingues/local/node/lib/node/.npm/express/1.0.7/package/lib/express/index.js:28:31)
    at Module._compile (module.js:373:26)
    at Object..js (module.js:379:10)
    at Module.load (module.js:305:31

有人能帮我吗?为什么我会收到此错误?我怎样才能安装与 express 不同的版本?

4

5 回答 5

16

问题是你可能有最新的连接(而不是“你需要安装最新的连接”)@Shripad 显示的命令很有帮助,并且可能会告诉你你有连接 1.0,的......呃哦快递是还没有为 1.0 连接做好准备,这样做可以回到 0.5.10:

npm install connect@0.5.10
于 2011-03-02T01:29:23.040 回答
3

您需要安装最新的连接 (connect@0.5.10)。确保检查已安装且处于活动状态的连接版本:

npm ls connect | grep active

引发错误的行引用了 connect.Server。

于 2011-03-02T01:11:15.543 回答
3

在我的情况下,注释掉包含连接帮助的代码。

//connect = require('connect');

于 2011-11-12T12:51:42.543 回答
2

尝试jpstrikesback答案并确保以正确的顺序安装依赖项:

npm install connect@0.5.10
npm install express@1.0.7

因为npm install express会在 express/1.0.7/package/lib/express/server.js 中安装最新版本的 connect (如果没有可用的,它会中断)

connect = require('connect')

这似乎需要最新版本的连接,而不是您在应用程序中需要的版本。

于 2011-03-09T09:58:14.240 回答
0

对于其他人(如果您的 connect@1.0.1 没有使用 npm uninstall connect@1.0.1 卸载)我删除了在 /usr/local/lib/node/connect/ 找到的实际文件

希望有帮助。

于 2011-03-03T06:31:52.993 回答