Node.js Dersleri: Sunucu Tarafında JavaScript Gücü

Node.js Dersleri: Sunucu Tarafında JavaScript Gücü

Günümüzde web geliştirme dünyası, JavaScript’in hem istemci tarafında (tarayıcıda) hem de sunucu tarafında kullanılabilmesi sayesinde önemli ölçüde değişti. İşte tam bu noktada Node.js devreye giriyor. Node.js, JavaScript’i sunucu tarafında çalıştırmamızı sağlayan, açık kaynaklı ve platformlar arası bir çalışma ortamıdır. Bu makalede, Node.js’nin ne olduğunu, nasıl çalıştığını ve web geliştirme projelerinizde nasıl kullanabileceğinizi detaylı bir şekilde inceleyeceğiz. Amacımız, size adım adım Node.js dersleri sunarak, sunucu tarafı JavaScript’in gücünü keşfetmenizi sağlamak.

İçindekiler

  1. Node.js Nedir?
  2. Node.js Nasıl Çalışır?
  3. Node.js’nin Avantajları
  4. Node.js Kurulumu
  5. İlk Node.js Uygulaması: “Merhaba Dünya”
  6. Node.js Modülleri
  7. npm (Node Package Manager) Paket Yöneticisi
  8. Node.js ile Web Sunucusu Oluşturma
  9. Express.js Framework’ü
  10. Node.js ve Veritabanları
  11. Node.js Proje Örneği: Basit Bir API
  12. Node.js En İyi Uygulamalar
  13. Node.js Kaynaklar

Node.js Nedir?

Node.js, Chrome V8 JavaScript motoru üzerine inşa edilmiş, olay odaklı, engellemeyen G/Ç modelini kullanan bir JavaScript çalışma ortamıdır. Bu, Node.js’nin hafif ve verimli olmasını sağlar. Başka bir deyişle, Node.js, JavaScript kodunu sunucu tarafında çalıştırmanıza olanak tanır. Bu sayede, tek bir dil (JavaScript) kullanarak hem istemci tarafı hem de sunucu tarafı geliştirmesi yapabilirsiniz. Node.js, özellikle gerçek zamanlı uygulamalar, veri yoğun uygulamalar ve ölçeklenebilir ağ uygulamaları için uygundur.

Node.js Nasıl Çalışır?

Node.js, olay döngüsü (event loop) ve engellemeyen G/Ç (non-blocking I/O) mimarisi sayesinde yüksek performans gösterir. Gelen istekler, olay döngüsüne gönderilir ve bu döngü, istekleri işler. Engellemeyen G/Ç sayesinde, bir işlem tamamlanana kadar diğer işlemlerin beklemesine gerek kalmaz. Bu, Node.js’nin aynı anda birden fazla isteği verimli bir şekilde işlemesini sağlar. Geleneksel sunucu mimarilerinde, her istek için ayrı bir iş parçacığı (thread) oluşturulurken, Node.js tek iş parçacığı (single-threaded) kullanarak daha az kaynak tüketir ve daha yüksek performans sunar. Bu Node.js dersleri boyunca bu mimarinin nasıl çalıştığını daha yakından göreceğiz.

Node.js’nin Avantajları

  • Tam Yığın JavaScript (Full-Stack JavaScript): Hem istemci hem de sunucu tarafında JavaScript kullanarak, geliştirme sürecini basitleştirir ve hızlandırır.
  • Yüksek Performans: Engellemeyen G/Ç ve olay döngüsü mimarisi sayesinde yüksek performans sunar.
  • Ölçeklenebilirlik: Yatay ve dikey olarak kolayca ölçeklenebilir.
  • Geniş Modül Ekosistemi: npm (Node Package Manager) sayesinde geniş bir modül ve kütüphane yelpazesine erişebilirsiniz.
  • Aktif Topluluk: Geniş ve aktif bir geliştirici topluluğuna sahiptir.
  • Gerçek Zamanlı Uygulamalar için Uygun: Websocket’ler ve diğer gerçek zamanlı teknolojileri destekler.

Node.js Kurulumu

Node.js’yi kurmak oldukça basittir. İşte adım adım kurulum yönergeleri:

  1. Node.js Web Sitesini Ziyaret Edin: https://nodejs.org adresine gidin.
  2. İndirme: İşletim sisteminize uygun olan LTS (Long Term Support) sürümünü indirin.
  3. Kurulum: İndirdiğiniz kurulum dosyasını çalıştırın ve yönergeleri izleyin.
  4. Doğrulama: Kurulum tamamlandıktan sonra, terminalinizi veya komut isteminizi açın ve aşağıdaki komutları çalıştırarak Node.js ve npm’nin doğru şekilde kurulup kurulmadığını kontrol edin:
node -v
npm -v

Bu komutlar, Node.js ve npm’nin kurulu sürümlerini gösterecektir.

İlk Node.js Uygulaması: “Merhaba Dünya”

Şimdi, ilk Node.js uygulamamızı oluşturalım. Bu uygulama, terminale “Merhaba Dünya!” yazdıracak basit bir JavaScript dosyası olacak.

  1. Dosya Oluşturun: `hello.js` adında bir dosya oluşturun.
  2. Kodu Ekleyin: Dosyaya aşağıdaki kodu ekleyin:
console.log("Merhaba Dünya!");
  1. Çalıştırın: Terminalinizi açın, dosyanın bulunduğu dizine gidin ve aşağıdaki komutu çalıştırın:
node hello.js

Terminalde “Merhaba Dünya!” yazısını görmelisiniz. Tebrikler, ilk Node.js uygulamanızı başarıyla çalıştırdınız!

Node.js Modülleri

Node.js, modüler bir yapıya sahiptir. Modüller, belirli işlevleri yerine getiren, yeniden kullanılabilir kod parçacıklarıdır. Node.js’nin yerleşik modülleri olduğu gibi, npm aracılığıyla indirebileceğiniz üçüncü taraf modülleri de bulunmaktadır. İşte bazı temel Node.js modülleri:

  • http: HTTP sunucusu oluşturmak ve HTTP isteklerini işlemek için kullanılır.
  • fs: Dosya sistemi işlemleri için kullanılır (dosya okuma, yazma, silme vb.).
  • path: Dosya yollarını işlemek için kullanılır.
  • url: URL’leri ayrıştırmak ve oluşturmak için kullanılır.
  • os: İşletim sistemi hakkında bilgi almak için kullanılır.

Bu modülleri kullanmak için, `require()` fonksiyonunu kullanarak modülü içe aktarmanız gerekir:

const http = require('http');
const fs = require('fs');

npm (Node Package Manager) Paket Yöneticisi

npm, Node.js için standart paket yöneticisidir. npm, Node.js ile birlikte gelir ve üçüncü taraf modüllerini indirmek, yüklemek, güncellemek ve yönetmek için kullanılır. npm’i kullanarak, projenize ihtiyaç duyduğunuz modülleri kolayca ekleyebilirsiniz. Örneğin, `express` framework’ünü yüklemek için aşağıdaki komutu kullanabilirsiniz:

npm install express

npm, `package.json` adlı bir dosya kullanarak projenizin bağımlılıklarını yönetir. Bu dosya, projenizin adı, sürümü, açıklaması ve bağımlı olduğu modüller gibi bilgileri içerir. `package.json` dosyası oluşturmak için aşağıdaki komutu kullanabilirsiniz:

npm init -y

Node.js ile Web Sunucusu Oluşturma

Node.js ile basit bir web sunucusu oluşturmak için `http` modülünü kullanabiliriz. İşte basit bir örnek:

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Merhaba Dünya!\n');
});

const port = 3000;
server.listen(port, () => {
  console.log(`Sunucu ${port} portunda çalışıyor`);
});

Bu kod, 3000 portunda bir sunucu oluşturur ve gelen isteklere “Merhaba Dünya!” cevabını gönderir. Bu kodu çalıştırdıktan sonra, tarayıcınızda `http://localhost:3000` adresine giderek sunucunuzu test edebilirsiniz.

Express.js Framework’ü

Express.js, Node.js için popüler bir web uygulama framework’üdür. Express.js, web uygulaması geliştirmeyi kolaylaştırmak için bir dizi özellik ve araç sunar. Örneğin, routing, middleware, template motorları ve daha fazlası. Express.js’yi kullanmak için, öncelikle npm ile yüklemeniz gerekir:

npm install express

İşte Express.js ile basit bir web sunucusu örneği:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Merhaba Dünya!');
});

app.listen(port, () => {
  console.log(`Sunucu ${port} portunda çalışıyor`);
});

Bu kod, Express.js kullanarak 3000 portunda bir sunucu oluşturur ve ana sayfaya gelen isteklere “Merhaba Dünya!” cevabını gönderir.

Node.js ve Veritabanları

Node.js, çeşitli veritabanlarıyla uyumlu çalışabilir. MongoDB, MySQL, PostgreSQL ve Redis gibi popüler veritabanları için Node.js sürücüleri bulunmaktadır. Veritabanı işlemlerini gerçekleştirmek için, öncelikle ilgili veritabanı sürücüsünü npm ile yüklemeniz gerekir. Örneğin, MongoDB ile çalışmak için `mongoose` modülünü kullanabilirsiniz:

npm install mongoose

Ardından, `mongoose` modülünü kullanarak veritabanına bağlanabilir ve veritabanı işlemlerini gerçekleştirebilirsiniz.

Node.js Proje Örneği: Basit Bir API

Şimdi, Node.js ve Express.js kullanarak basit bir API oluşturalım. Bu API, kullanıcı verilerini yönetmek için kullanılabilir.

  1. Proje Dizini Oluşturun: `api-projesi` adında bir dizin oluşturun.
  2. package.json Oluşturun: Dizine gidin ve aşağıdaki komutu çalıştırın:
npm init -y
  1. Express.js Yükleyin: Aşağıdaki komutu çalıştırın:
npm install express
  1. app.js Oluşturun: `app.js` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
const express = require('express');
const app = express();
const port = 3000;

// Kullanıcı verileri (örnek)
const users = [
  { id: 1, name: 'Ahmet', email: '[email protected]' },
  { id: 2, name: 'Ayşe', email: '[email protected]' }
];

// Middleware: JSON verilerini ayrıştırma
app.use(express.json());

// GET: Tüm kullanıcıları listeleme
app.get('/users', (req, res) => {
  res.json(users);
});

// GET: Belirli bir kullanıcıyı getirme
app.get('/users/:id', (req, res) => {
  const userId = parseInt(req.params.id);
  const user = users.find(u => u.id === userId);

  if (user) {
    res.json(user);
  } else {
    res.status(404).send('Kullanıcı bulunamadı');
  }
});

// POST: Yeni bir kullanıcı oluşturma
app.post('/users', (req, res) => {
  const newUser = req.body;
  users.push(newUser);
  res.status(201).json(newUser);
});

// Sunucuyu başlatma
app.listen(port, () => {
  console.log(`Sunucu ${port} portunda çalışıyor`);
});
  1. Çalıştırın: Terminalde aşağıdaki komutu çalıştırın:
node app.js

Bu API, kullanıcı verilerini yönetmek için GET, POST gibi temel HTTP metotlarını kullanır. Bu örnek, Node.js dersleri için başlangıç seviyesinde bir proje örneğidir.

Node.js En İyi Uygulamalar

  • Asenkron Programlama: Engellemeyen G/Ç’den tam olarak yararlanmak için asenkron programlama tekniklerini kullanın (örneğin, Promises, async/await).
  • Hata Yönetimi: Hataları düzgün bir şekilde ele alın ve loglayın.
  • Güvenlik: Güvenlik açıklarını önlemek için güvenlik en iyi uygulamalarını takip edin (örneğin, SQL injection, XSS).
  • Kod Kalitesi: Temiz, okunabilir ve bakımı kolay kod yazın.
  • Test: Uygulamanızı düzenli olarak test edin (unit test, entegrasyon testleri).

Node.js Kaynaklar

Bu Node.js dersleri size Node.js’nin temellerini ve nasıl kullanılabileceğini göstermiştir. Daha fazla öğrenmek ve pratik yapmak için yukarıdaki kaynakları kullanabilirsiniz. Başarılar!

Leave A Comment

Your email address will not be published. Required fields are marked *