Question: I ran the following code to install the underscore js module:

```
npm install -g underscore

```

I then tried to access it via the node console, but I get the following error:

```
node
> __ = require('underscore');
Error: Cannot find module 'underscore'
  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)
  at repl:1:6
  at REPLServer.self.eval (repl.js:109:21)
  at rli.on.self.bufferedCmd (repl.js:258:20)
  at REPLServer.self.eval (repl.js:116:5)
  at Interface.<anonymous> (repl.js:248:12)
  at Interface.EventEmitter.emit (events.js:96:17)

```

Why doesn't this example work?

Answer: 
I don't really know why, but it fails indeed (when installing underscore globally, as you have done).

If you install it without -g, it should work (be careful, however, as '\_' is already used by Node REPL to hold the result of the last operation, as explained here: 
[Using the Underscore module with Node.js](https://stackoverflow.com/questions/5691901/using-the-underscore-module-with-node-js?rq=1)

Do you really need to install it globally?
I just had the same problem

```
$ export NODE_PATH=/usr/local/share/npm/lib/node_modules

```

sorted it out for me; this obviously depends on your platform and where npm has installed it. Also, as mentioned in Javo's answer, don't name it \_ in the REPL.