2011-03-01 13 views
12

Estoy intentando utilizar Express en el nodo, instale todo bien, compilado, consiguió NPM e instalado con expreso:marco expreso dando un error muy extraño

NPM instalar expresa

El problema es, cada vez que trato de "exigirlo", ¡me da un error! echar un vistazo, un simple archivo app.js como:

var express = require('express'); 

Cuando lo ejecuto:

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 

Alguien me puede ayudar? ¿Por qué recibo este error? ¿Cómo puedo instalar una versión diferente de Express?

Respuesta

16

El problema es que probablemente tenga la última conexión (en lugar de "necesita instalar la última conexión") el comando @Shripad mostró que es útil y probablemente le muestre que tiene la conexión 1.0, yay. ..uh oh Express no es del todo listo para 1.0 de conexión, hacer esto para volver a 0.5.10:

npm install [email protected] 
+1

Oh! Hay un 1.0? ¡Ya estoy desactualizado! :) –

+0

muchas gracias amigo, ahora está bien ='p –

+1

Recibo el mismo error pero cuando lo retrotraigo y muestra [email protected] como activo, sigo recibiendo el mismo error. Esto es muy nuevo y probablemente tenga que ver con la actualización de hoy. Simplemente no ha retrocedido completamente por alguna razón. – JohnAllen

3

Necesita tener la última conexión instalada ([email protected]). Asegúrese de verificar la versión de conexión que se instala y activa:

npm ls connect | grep active

La línea que arroja un error connect.Server referencias.

0

para otros (si su [email protected] no se desinstala con la desinstalación NPM conectar @ 1.0.1) Eliminé los archivos reales encontrados en/usr/local/lib/node/connect/

Espero que ayude.

2

tratar jpstrikesback respuesta y asegúrese de instalar los dependencys en el orden correcto:

npm install [email protected] 
npm install [email protected] 

porque NPM instalar expresa va a instalar la última versión de conexión (si no hay nadie disponible, y se romperá) y/server.js

connect = require('connect') 

que parece requerir la versión más reciente de conectar no el que han requerido en expreso/1.0.7/paquete/lib/expreso en tu aplicación

+0

instalar las dependencias como sugirió no ayudó en mi caso. de alguna manera express todavía instala una versión más nueva de connect y parece que se usa (?!?). para ilustrar esto, aquí hay un fragmento de mi npm ls: http://tinypic.com/r/z1nxk/6 – nerdess

3

comentando el código que incluye conectar ayudó en mi caso.

//connect = require('connect');