Node.js’de kullandığımız require
ve module.exports
ifadelerinin kullanım şekilleri başlarda tam anlaşılmayabiliyor. Bu yazımda elimden geldiğince bunları anlatmaya çalışacağım.
Dosyamızdaki fonksiyonları veya tanımlamaları başka bir dosyaya gönderebilmek için module.exports
ifadesini, gönderilen dosyaları mevcut dosyaya dahil etmek için ise require
ifadelerini kullanırız.
Bir ifadeyi export ile aktarmak
module.js dosyamızdaki kodlar
const f = () => {
console.log('f fonksiyonu - module.js');
};
Yukarıdaki f
fonksiyonunu başka dosyalarda kullanmak için mevcut dosyadan module.exports, kullanacağımız sayfadan ise require ile dahil etmemiz gerekiyor.
Yukarıdaki cümleye göre hareket edersek f
fonksiyonunu app.js
sayfasında kullanmak için dosyanın sonuna module.exports = f
yazmalıyız.
Bu ifade ile f
fonksiyonumuzu export
etmiş oluruz. Geriye sadece require
ile çağırmak kalıyor.
app.js dosyamızdaki kodlar
const dahil = require('./module');
dahil(); // Çıktı: f fonksiyonu - module.js
require
ifadesi ile module.js
dosyamızdaki export
edilen f
fonksiyonunu app.js
içine dahil ettik ve verdiğimiz ad ile kullanabildik. dahil
yerine farklı bir ad da verebilirdik. Bu seçim tamamen bize kalıyor.
Birden fazla ifadeyi export ile aktarmak
Bu sefer f
'in yanında bir Function Expression
daha yani x
fonksiyonu ve Number
değer taşıyan bir değişkenimiz olsun.
module.js dosyamızdaki kodlar
const f = () => {
console.log(' f fonksiyonu - module.js');
};
const x = () => {
console.log(' x fonksiyonu - module.js');
};
const P = 3.14;
Bu ifadeleri app.js
dosyasında kullanmak için ise iki yöntemimiz var.
1. Yöntem
İlk yöntemde module.js
dosyamıza şu şekilde export
etmeliyiz.
module.exports.ffonk= f;
module.exports.xfonk= x;
module.exports.pi= P;
Burada belirttiğimiz ffonk, xfonk ve pi
tamamen bize bağlı bir isimlendirme. Bu isimleri require
ile dahil ettiğimiz dosyada çağırmak için veriyoruz.
Bu şekilde export
edince nasıl kullanacağız derseniz de;
app.js dosyamızdaki kodlar
const dahil = require('./module.js');
dahil.ffonk();
dahil.xfonk();
console.log(dahil.pi);
/* Çıktılar
f fonksiyonu - module.js
x fonksiyonu - module.js
3.14
*/
2. Yöntem
İkinci yöntemde ise ilkine göre daha basit bir şekilde export
etmek mümkün. Bunun için module.exports
kodunu şu şekilde yazmalıyız.
module.exports = { f, x, P };
Bu şekilde export
ettiğimizde app.js
dosyasında şu şekilde kullanabiliriz.
const dahil = require('./module');
dahil.f();
dahil.x();
console.log(dahil.P);
Bu kullanım ilkine göre daha yaygın ve kullanışlıdır. Bunun sebebi ise bu şekilde sadece işimize yarayan ifadeyi dahil edebiliriz. Bunu Object Destructuring
ile yapabiliriz.
Örneğin const { f }= require('./module')
şeklinde dahil edersek x ve P
ifadelerini dahil etmeden f
fonksiyonunu dahil etmiş oluruz.
İki tanesini dahil etmek istersek const { f, x }= require('./module')
kodunu kullanabiliriz.
Object Destructuring
yönteminin güzel bir özelliği ile birlikte dahil ettiğimiz ifadeye özel isim de verebiliriz. Örneğin f
fonksiyonunu ve P
ifadesini isimlendirelim ve çağıralım.
const { f: sinan, P: piSayisi } = require('./module');
sinan();
console.log(piSayisi);
/* Çıktılar
f fonksiyonu - module.js
3.14
*/
İsimlendirme yaparak ilk yöntemin sağlamış olduğu özelliği bu şekilde ikinci yöntemde de kullanabiliyoruz.
Benim tercihim ikinci yöntem çünkü daha yaygın bir kullanıma sahip.
require
ile dosyayı dahil ederken./module
ile./module.js
arasında bir fark bulunmuyor. Yukarıdaki örneklerde olduğu gibi iki türlü de kullanabilirsiniz.
Yazımı okuduğunuz için teşekkürler. Sonraki yazılardan haberdar olmak için beni aşağıdaki sosyal medya hesaplarımdan takip edebilirsiniz.
Top comments (0)