2010-10-12 13 views
9

Ho 3 file di nodi:Condividi le variabili tra i moduli in Javascript/node.js?

// 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 richiede entrambi i file, modules.js che richiedono un modulo e crea una variabile, e app.js che dovrebbero utilizzare quella variabile. Ma ottengo un errore su app.js perché l'app non è definita.

C'è un modo per rendere questo possibile?

risposta

0

Sembra che tu stia definendo la variabile in modules.js, ma provando a farvi riferimento in app.js. Avrai bisogno di un'altra richiesta in app.js:

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

app.configure(...); 
8

Tutto ciò che è dichiarato in un modulo è locale a quel modulo a meno che non venga esportato.

Gli oggetti esportati da un modulo sono accessibili da altri moduli che fanno riferimento ad esso.

$ 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' } 
Problemi correlati