Scintillo
Scintillo

Reputation: 1704

Requiring CoffeeScript from Node.js application gives cannot find module error

I'm trying to require a CoffeeScript file from a Node.js application but Node.js gives error Error: Cannot find module 'something'. What is the proper way to do this? If I compile the CoffeeScript code beforehand, it works but I don't want to do this.

test.js:

require('coffee-script').register();

require('something');

something.coffee:

console.log('Hello World!');

Console output:

> node test.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'something'
  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> (C:\Users\Sami\Desktop\smallscale\test.js:3:1)
  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)
  at startup (node.js:119:16)
  at node.js:906:3

Upvotes: 0

Views: 386

Answers (1)

Marie
Marie

Reputation: 304

It seems like you are trying to require() a file using the structure to require() a module.

If you require() something without giving require() a path to a file (absolute or relative), Node.js is going to look up for your module inside the /node_modules directory. You can read the documentation here.

Try requiring your module as a JavaScript file like this:

require('./something')

(and make sure './something' is the path from where you require the module to where the module is located in your app structure, or use an absolute path).

Upvotes: 2

Related Questions