Bu yazıda module.exports ve exports arasındaki farkı inceleyeceğiz.

Eğer node.js kullanıyorsanız, aşağıdaki gibi bir senaryo size tanıdık gelecektir.

kitap.js:

exports.baslik = 'Kırmızı Başlıklı Kız'

okuyucu.js:

var kitap = require('./kitap');
console.log(kitap.baslik); // Konsol çıktısı : 'Kırmızı Başlıklı Kız'

Yukarıda; ‘kitap.js‘ içindeki baslik özelliğine exports sayesinde erişebiliyoruz. Ancak bu yaklaşımda her zaman metot veya özellik çağırmamız gerekiyor. Peki exports özelliğine kendi nesnemizi nasıl aktarırız?

Böyle bir durumda ‘module.exports‘ özelliğini kullanırız.

kitap.js:

module.exports = 'Kırmızı Başlıklı Kız'

okuyucu.js:

var kitap = require('./kitap');
console.log(kitap); // Konsol çıktısı : 'Kırmızı Başlıklı Kız'

Yukarıda;  Herhangi bir metot veya özellik çağırmayıp, direk kitap değişkenine ulaştık ve istediğimiz gibi dönüş aldık. Bazı durumlarda bu yöntemi kullanmak zorunda kalabilirsiniz.