2016-12-19 27 views
11

वर्तमान में, मेरे पास अपनी खुद की फाइल में 4 बाल कक्षाएं हैं। मुझे उन सभी को एक ही फाइल में जरूरी है। मैं सोच रहा हूं कि क्या मैं एक ही मॉड्यूल में उन सभी वर्गों में से 4 को शामिल कर सकता हूं। वर्तमान में, मैं उन्हें इसक्या आप एक एकल नोडज मॉड्यूल से कई कक्षाएं निर्यात कर सकते हैं?

var Jack = require('./Jack.js'); 
var JackInstance = new Jack(); 
var Jones = require('./Jones.js'); 
var JonesInstance = new Jones(); 

तरह का आयात कर रहा हूँ मैं उन्हें इस तरह

var People = require('./People.js'); 
var JackInstance = new People.Jack(); 

या यहां तक ​​कि

var Jack = require('./People.js').Jack; 
var JackInstance = new Jack(); 

मेरे कक्षाएं तो

तरह परिभाषित कर रहे हैं आयात करना चाहते हैं
class Jack{ 
    //Memeber variables, functions, etc 
} 

module.exports = Jack; 

उत्तर

34

हां, आप निर्यात कर सकते हैं कई कक्षाएं

उदा। People.js

class Jack{ 
    //Memeber variables, functions, etc 
} 

class John{ 
    //Memeber variables, functions, etc 
} 

module.exports = { 
    Jack : Jack, 
    John : John 
} 

और, जैसा कि आप सही तरीके से उल्लेख किया है आप इन कक्षाओं में उपयोग कर सकते हैं।

var People = require('./People.js'); 
var JackInstance = new People.Jack(); 
var JohnInstance = new People.John(); 
+2

वास्तव में !? मैंने पहले इस सटीक विधि की कोशिश की! मुझे दोबारा प्रयास करने दें। मैं आपके ans asap स्वीकार करेंगे। –

+1

जैसा कि यह पता चला है, मेरे पास बस एक टाइपो था। धन्यवाद!! –

+1

आपका स्वागत है :) –

27

तुम भी एक छोटा रूप में यह कर सकते हैं, destructuring assignments का उपयोग कर (जो मूल रूप Node.js v6.0.0 से शुरू समर्थित हैं):

// people.js 
class Jack { 
    // ... 
} 

class John { 
    // ... 
} 

module.exports = { Jack, John } 

आयात:

// index.js 
const { Jack, John } = require('./people.js'); 

या यहां तक ​​कि

// index.js 
const { 
    Jack: personJack, John: personJohn, 
} = require('./people.js'); 
: यदि आप एलियास चाहते इस तरह के कार्य की आवश्यकता होती है

उत्तरार्द्ध मामले personJack में और personJohn अपनी कक्षाओं में दर्शाएंगे।

चेतावनी का एक शब्द:

Destructuring भावना है कि यह अप्रत्याशित त्रुटियों का उत्पादन होने का खतरा है में खतरनाक हो सकता है। export पर घुंघराले ब्रैकेट को भूलना या require पर गलती से शामिल करना अपेक्षाकृत आसान है।

+0

आप अधिक अंक के लायक हैं। – John

+0

धन्यवाद, जॉन। – Nevertheless

संबंधित मुद्दे