I am going through my first node.js project. I’ve installed mongodb, have a server.js file, and when I try to run it I get this error
module.js:340
throw err;
^
Error: Cannot find module 'mongodb'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
I am quite certain I have mongodb installed, I am new to unix coming from a C# windows background, but I think this is a path not being configured properly?
The error you are getting indicates that the NPM package for MongoDB is not correctly installed.
The fix here depends on how you plan to leverage NPM. The NPM package manager operates has two different modes of operation: local and global.
The first (and default) mode is “local”.
If you go to the folder with
server.jsyou will see a sub-folder namednode_modules. Under that folder will be amongodbfolder. If that folder is not present, then themongodbmodule is not installed on that path.To correct this,
cdto that folder and typenpm install mongodb. When the process is done you should have thenode_modules/mongodbfolder available.You can also install MongoDB package globally using
npm install -g mongodb. This is useful if you are using lots of node.js command-line stuff, but less useful if you are deploying the whole thing.Side Note: there is an evolving standard around
package.json. Thepackage.jsonis a standardized way of including all dependencies for a given module. This allows you to runnpm updateornpm installat the root of a project / package and effectively “pull in” all of the dependencies. This greatly simplifies the deployment process and the process of keeping your dependencies in-line.