2010-10-12 26 views
9

मेरे पास 3 नोड फ़ाइलें हैं:जावास्क्रिप्ट/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 दोनों फ़ाइलों, modules.js की आवश्यकता होती है, जिन्हें मॉड्यूल की आवश्यकता होती है और एक चर बनाता है, और app.js जो उस चर का उपयोग करना चाहिए। लेकिन मुझे app.js पर त्रुटि मिलती है क्योंकि ऐप को परिभाषित नहीं किया गया है।

क्या यह संभव बनाने का कोई तरीका है?

उत्तर

0

ऐसा लगता है कि आप modules.js में चर परिभाषित कर रहे हैं, लेकिन app.js. में इसका संदर्भ देने का प्रयास कर रहे हैं। जब तक यह निर्यात किया जाता है

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

app.configure(...); 
8

सब कुछ एक मॉड्यूल में घोषणा की कि मॉड्यूल के लिए स्थानीय है: आप एक और app.js में की आवश्यकता होती है की आवश्यकता होगी।

एक मॉड्यूल से निर्यात की गई वस्तुओं को संदर्भित अन्य मॉड्यूल से एक्सेस किया जा सकता है।

$ 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' } 
संबंधित मुद्दे