Node.js Modül Sistemi ve Modül Kullanımı
- 17
- (1)
- (5)
- 25 Oca 2025
Node.js, modüler bir yapıya sahiptir ve uygulamaları daha düzenli ve yönetilebilir hale getirmek için modül sistemini kullanır. Node.js modül sistemi, kodları farklı dosyalara bölerek yeniden kullanılabilirlik ve sürdürülebilirlik sağlar. Bu makalede, Node.js modül sisteminin temellerini ve nasıl kullanılacağını öğreneceksiniz.
Node.js Modül Türleri
Node.js'te üç ana modül türü bulunmaktadır:
- Yerleşik Modüller (Built-in Modules): Node.js tarafından sağlanan ve ek kurulum gerektirmeyen modüllerdir. Mesela,
fs
,http
,path
,os
modülleri Node.js içerisinde yerleşiktir. - Kullanıcı Tanımlı Modüller: Geliştirici tarafından oluşturulan ve uygulama ihtiyaçlarına göre yapılandırılan modüllerdir. Özel fonksiyonlar veya sınıflar içeren modüller örnek olarak verilebilir.
- Üçüncü Taraf Modüller:
npm
(Node Package Manager) aracılığıyla yüklenen harici paketlerdir. Mesela,express
,mongoose
,lodash
modülleri sonradan eklenebilen modüllerdir.
Modül Oluşturma ve Kullanma
1. Kullanıcı Tanımlı Modül Oluşturma
Bir kullanıcı tanımlı modül oluşturmak için yeni bir dosya oluşturun ve içerisine aşağıdaki gibi fonksiyonlar ekleyin:
math.js
dosyası:
function toplama(a, b) {
return a + b;
}
function carpma(a, b) {
return a * b;
}
module.exports = { toplama, carpma };
2. Modülleri Kullanma
Başka bir dosyada bu modülü aşağıdaki gibi içe aktarabilirsiniz:
app.js
dosyası:
const math = require('./math');
console.log(math.toplama(5, 10)); // 15
console.log(math.carpma(4, 3)); // 12
Komut satırında node app.js
ile bu script dosyasını çalıştırdığınızda ekrana 15 ve 12 değerleri gelecektir. math.js
dosyasının da aynı klasörde olması gereklidir.
Yerleşik Modüllerin Kullanımı
Node.js yerleşik modüllerini kullanarak çeşitli işlemler yapabilirsiniz. Örneğin:
fs
Modülü ile Dosya İşlemleri
const fs = require('fs');
fs.writeFileSync('dosya.txt', 'Bu dosya fs modülü ile oluşturuldu.');
const data = fs.readFileSync('dosya.txt', 'utf8');
console.log(data);
http
Modülü ile Basit Sunucu
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Bu sunucu http modülü ile çalıştırıldı.');
});
server.listen(3000, () => {
console.log('Sunucu 3000 portunda çalışıyor...');
});
Üçüncü Taraf Modüllerin Kullanımı
Üçüncü taraf modüller npm
aracılığıyla yüklenir. Örneğin, express
modülünü yüklemek için terminale şu komutları yazmalısınız:
npm init -y
npm install express
app.js
içerisinde kullanımı:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Merhaba, Express!');
});
app.listen(3000, () => {
console.log('Express sunucusu 3000 portunda çalışıyor...');
});
Express Nedir?
Express, Node.js üzerine inşa edilmiş minimalist ve esnek bir web uygulama çerçevesidir. HTTP isteklerini ve yanıtlarını yönetmek, orta katman yazılımlarını (middleware) kullanmak ve RESTful API'ler oluşturmak için güçlü ve kullanışlı bir yapı sunar. Express, performans odaklı ve modüler yapısı sayesinde web uygulamalarını hızlıca geliştirmenizi sağlar.
Daha Detaylı Örnek
Bir ürün sınıfı oluşturup farklı dosyalarda kullanmak için aşağıdaki adımları takip edebilirsiniz.
ProductExample isimli bir proje klasörü oluşturun. Klasör içerisinde aşağıdaki dosyaları oluşturun. Proje yönetimi VSCode
ile kolaylıkla yapabilirsiniz.
product.js
içerisi:
class Product {
constructor(name, price, stock, type, size) {
this.name = name;
this.price = price;
this.stock = stock;
this.type = type;
this.size = size;
}
getInfo() {
return `Ürün: ${this.name}, Fiyat: ${this.price} TL, Stok: ${this.stock}, Tür: ${this.type}, Boyut: ${this.size}`;
}
}
module.exports = Product;
app.js
içerisi:
const express = require('express'); // Express üçüncü taraf modülüdür
const Product = require('./product'); // Product kullanıcı tanımlı modüldür
// Express uygulaması oluşturuluyor
const app = express();
app.use(express.json());
// Ürünler bu dizi içerisinde tutulsun
let products = [];
// Bu API ile ürün eklenir
app.post('/insert-product', (req, res) => {
const { name, price, stock, type, size } = req.body;
const newProduct = new Product(name, price, stock, type, size);
products.push(newProduct);
res.status(201).send('Ürün eklendi');
});
// Bu API ile ürünler liste olarak okunur
app.get('/get-products', (req, res) => {
res.status(200).json(products);
});
// Bu API ile ürün silinir
app.delete('/delete-product/:name', (req, res) => {
const { name } = req.params;
products = products.filter(p => p.name !== name);
res.status(200).send('Ürün silindi');
});
// Bu API ile ürün güncellenir
app.put('/update-product/:name', (req, res) => {
const { name } = req.params;
const { price, stock, type, size } = req.body;
products = products.map(p => {
if (p.name === name) {
return new Product(name, price || p.price, stock || p.stock, type || p.type, size || p.size);
}
return p;
});
res.status(200).send('Ürün güncellendi');
});
app.listen(3000, () => {
console.log('Sunucu 3000 portunda çalışıyor');
});
Bu örnekte, Product
sınıfı başka bir dosyada oluşturulup require
kullanılarak içe aktarılmış ve Express.js ile POST, GET, DELETE ve PUT işlemleri gerçekleştirilmiştir.
Komut satırında cd ProductExample
ile klasör içine girip, önce npm init -y
, sonra npm install express
komutları ile Express modülünü projeye ekleyin.
node app.js
komutu ile web uygulamasını çalıştırdığınızda her bir Web API bağlantısını Postman
yazılımı ile kontrol edebilirsiniz.
http://localhost:3000/insert-product adresini Postman üzerinde aşağıdaki gibi bir JSON data göndererek çalıştırabilirsiniz.
Girilen ürünleri okumak için de http://localhost:3000/get-products adresinden web uygulamaya erişim sağlamalısınız
Node.js modül sistemi, projeleri daha modüler, esnek ve yeniden kullanılabilir hale getirmek için güçlü bir araçtır. Yerleşik, kullanıcı tanımlı ve üçüncü taraf modüller sayesinde geliştirme süreci kolaylaşır. Modül sisteminin etkili bir şekilde kullanılması, kod organizasyonunu ve ölçeklenebilirliği artıracaktır.
İlişkili İçerikler
Node Package Manager (NPM), Node.js ekosisteminin en önemli bileşenlerinden biridir. NPM, JavaScript projeleri için paket yönetimi sağlayan bir araçtır.
Node.js'te iki temel modül sistemi bulunmaktadır: CommonJS (CJS) ve ES Modules (ESM). CommonJS, Node.js'in varsayılan modül sistemidir, ES Modules ise modern Javascript standardına uygun olarak geliştirilmiştir.