Express框架给出了一个非常奇怪的错误

时间:2011-03-01 23:47:44

标签: javascript node.js express

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

  

npm install express

问题是,每当我试图“要求”它时,它就会给我一个错误! 看一下,一个简单的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安装另一个版本?

5 个答案:

答案 0 :(得分:16)

问题是你可能有最新的连接(而不是“你需要安装最新的连接”)@Shripad显示的命令很有用,可能会告诉你你有连接1.0, yay < /em>...hh哦表达还没有为1.0连接做好准备,这样做回到0.5.10:

npm install connect@0.5.10

答案 1 :(得分:3)

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

npm ls connect | grep active

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

答案 2 :(得分:3)

在我的案例中,

注释掉包含连接的代码。

//connect = require('connect');

答案 3 :(得分:2)

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

npm install connect@0.5.10
npm install express@1.0.7

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

connect = require('connect')

似乎需要最新版本的连接而不是您应用中所需的连接。

答案 4 :(得分:0)

对于其他人(如果你的connect@1.0.1没有用npm卸载卸载connect@1.0.1)我删除了在/ usr / local / lib / node / connect /

找到的实际文件

希望有所帮助。