Home » Nodejs » Express framework giving a very strange error

Express framework giving a very strange error

Posted by: admin November 29, 2017 Leave a comment

Questions:

I’m trying to use Express in node, install everything okay, compiled, got npm and installed express with:

npm install express

The problem is, everytime I try to “require” it, it gives me an error!
Take a look, a simple file app.js as:

var express = require('express');

When I run it:

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

Can someone help me? Why am I getting this error? How can I maybe install a different version from express?

Answers:

The issue is that you probably have the latest connect (as opposed to “you need to install the latest connect”) the command @Shripad showed is helpful and will probably show you that you have connect 1.0, yay…uh oh express isn’t quite ready for 1.0 connect, do this to go back to 0.5.10:

npm install [email protected]

Questions:
Answers:

You need to have the latest connect installed ([email protected]). Make sure you check the connect version that is installed and active:

npm ls connect | grep active

The line that throws up an error references connect.Server.

Questions:
Answers:

commenting out the code that includes connect helped in my case.

//connect = require('connect');

Questions:
Answers:

try jpstrikesback answer and make sure to install the dependencys in the correct order:

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

because npm install express will install the latest version of connect (if no one is available, and it will break) and in express/1.0.7/package/lib/express/server.js

connect = require('connect')

which seems to require the latest version of connect not the one you have required in your app.

Questions:
Answers:

For others (if your [email protected] doesn’t uninstall with npm uninstall [email protected]) I removed the actual files found at /usr/local/lib/node/connect/

Hope that helps.