Node.js - cannot find module

user80805 picture user80805 · Mar 13, 2011 · Viewed 73.2k times · Source

I'm using Node Boilerplate and it all worked fine until I decided create another project on top of it(in another dir).

Now I have exactly the same code base(this project AS IS) in two different folders. I can run one of it without any problems but another one is failing with:

% node app.js
node.js:116
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'connect/middleware/router'
    at Function._resolveFilename (module.js:299:11)
    at Function._load (module.js:245:25)
    at require (module.js:327:19)
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/server.js:17:14)
    at Module._compile (module.js:383:26)
    at Object..js (module.js:389:10)
    at Module.load (module.js:315:31)
    at Function._load (module.js:276:12)
    at require (module.js:327:19)
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/index.js:28:31)

There is similar problem explained here - https://github.com/visionmedia/express/issues/535 which says that the problem is in the incompatible version of connect/express.

But how is this possible? Source code is exactly the same in two folders and it work fine in one copy and fails in another?

Answer

Ricardo Tomasi picture Ricardo Tomasi · Mar 14, 2011

Do the two folders share a common parent? Node looks for modules in ~/.node_modules and /node_modules in your app dir.