2016-12-19 22 views
11

Şu anda kendi dosyalarında her 4 çocuk sınıfım var. Hepsini aynı dosyada istiyorum. Tek bir modülde bu sınıfların tümünü içerebiliyor muyum diye merak ediyorum. Şu anda, buTek bir Nodejs Modülünden birden fazla sınıf ihraç edebilir misiniz?

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

gibi onları aktarıyorum ben

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

Ya

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

My sınıfları bile

yüzden

gibi tanımlanır böyle bunları aktarmak istediğiniz
class Jack{ 
    //Memeber variables, functions, etc 
} 

module.exports = Jack; 

cevap

34

Evet, dışa aktarabilirsiniz çoklu sınıflar.

örn. People.js

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

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

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

Ve, doğru söylediğim gibi bu sınıflara erişebilirler.

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

GEREKLI !? Bu yöntemi daha önce denedim! Tekrar denememe izin ver. Aslarınızı asap kabul ediyorum. –

+1

Sonuçta, bir yazım hatası yaşadım. Teşekkürler!! –

+1

Hoş Geldiniz :) –

27
(doğal node.js v6.0.0 başlayarak desteklenir edilir) Ayrıca destructuring assignments kullanarak, daha kısa formda yapabilirsiniz

:

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

class John { 
    // ... 
} 

module.exports = { Jack, John } 

İçe:

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

Hatta Bu şekilde aliased istiyorsanız atama gerektirir:

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

Son durumda personJack ve personJohn, sınıflarınıza başvuruda bulunacaktır.

strüktür beklenmedik hatalar üretmeye eğilimli olduğunu anlamda tehlikeli olabilir:

Uyarı bir kelime

. export numaralı kuşaktaki parantezleri unutmak veya yanlışlıkla require numaralı telefona eklemek nispeten kolaydır.

+0

Daha fazla puan hak ediyorsunuz. – John

+0

Teşekkür ederim, John. – Nevertheless

İlgili konular