thgie thgie - 1 month ago 7
Javascript Question

node.js require cannot find custom module

Here is the project structure:

/
app.js
package.json
/node_modules
/app
config.json
/frontend
assets and html tpls
/modules
couch.js
raeume.js
users.js


I require config.json, raeume.js and users.js from app.js and it all works fine.

var config = require('./app/config');
var raeume = require('./app/modules/raeume');
var users = require('./app/modules/users');


Then I require config.json and couch.js from user.js the same way and it won't find anything.

var couch = require('./app/modules/couch');
var config = require('./app/config');


I guess it should find it. After some research I saw a diverse landscape of problems inclusive how node is compiled. Thus included: I work on osx 10.8 with node v0.10.7.

Answer

The path is relative to the directory in which you are requireing the files, so it should be something like:

var couch = require('./couch');
var config = require('../config');

A bit of clarification, if you write

var couch = require('./couch');

you are trying to require the couch module which resides in the current directory, if you write

var couch = require('couch');

you are trying to require the couch module installed via npm.