9

I have 3 node files:

// run.js require('./configurations/modules'); require('./configurations/application'); // modules.js var express = module.exports.express = require('express'); var app = module.exports.app = express.createServer(); // app.js app.configure(...) 

Run.js requires both files, modules.js which require a module and creates a variable, and app.js which should use that variable. But I get an error on app.js cause app isn't defined.

Is there a way to make this possible?

2 Answers 2

9

Everything declared in a module is local to that module unless it is exported.

Exported objects from one module can be accessed from other modules that reference it.

$ cat run.js require('./configurations/modules'); require('./configurations/application'); $ cat configurations/modules.js exports.somevariable = { someproperty: 'first property' }; $ cat configurations/application.js var modules = require('./modules'); modules.somevariable.something = 'second property'; console.log(modules.somevariable); $ node run.js { someproperty: 'first property', something: 'second property' } 
Sign up to request clarification or add additional context in comments.

Comments

0

It looks like you're defining the variable in modules.js, but trying to reference it in app.js. You'll need to have another require in app.js:

// app.js var application = require('./path/to/modules'), app = application.app; app.configure(...); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.