3

I am new to node.js and trying to learn it.
Here, I am trying to access mySQL database in nodejs.
I have install module for this using npm install mysql but I am not getting any folder for mysql in node_modules folder.
but I am not getting any error while installing mysql module from terminal. because of this issue I am not able to use mysql module in program and I am getting error as

module.js:340
    throw err;
          ^
Error: Cannot find module 'mysql'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/lampp/htdocs/1nodeapp/mysql.js:4:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
2
  • 1
    Try the following commands: $npm list; $npm list -g; Is mysql in either of those lists? It's worth noting that npm install without the -g global flag will install in the current working directory (where you probably want them if you're using require). Commented Oct 26, 2013 at 17:51
  • 2
    did you cd into your directory then did the npm install? Commented Oct 26, 2013 at 19:24

2 Answers 2

7

Often it helps to get a package.json in your directory and install from there. Try creating a file called package.json and filling it with the following content (you'll want this down the line anyway if you are creating a node project you are going to continue working with):

{
  "name": "PROJECT NAME",
  "version": "0.0.1",
  "author": "YOUR NAME",
  "dependencies": {
    "mysql": "2.x.x"
  }
}

Once this is in place, you can just run npm install and should see a node_modules folder created and populated with the mysql source. In the future if you want to add dependencies and have them saved to your package.json automatically, you can just run npm install whatever --save. Quite convenient!

Sign up to request clarification or add additional context in comments.

Comments

1

When you try to install new module, npm is looking for node_modules directory in current location, and if there is none, it's looking in parent directory, and so on. If node_module is present somewhere there, your module will be installed there. That's probably what happens in your case.

If you want to install mysql module in your present directory, just create empty node_modules directory where you want to install it.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.