Node.js Başlangıç Rehberi


Node.js, modern web uygulamaları ve sunucu tarafı geliştirmelerinde kullanılan popüler bir platformdur. JavaScript tabanlı olan Node.js, hızlı, ölçeklenebilir ve verimli bir şekilde çalışabilen uygulamalar oluşturmanıza olanak sağlar. Bu başlangıç rehberi, Node.js'in temellerini anlamanıza ve web geliştirmeye başlamanıza yardımcı olacak.

 

1. Node.js Nedir?

Node.js, V8 JavaScript motoru üzerine inşa edilmiş bir çalışma zamanı ortamıdır. JavaScript'in tarayıcı dışında da kullanılabilmesini sağlar. Node.js'in temel özellikleri şunlardır:

  • Hızlı ve Verimli: Node.js, olay işleme modeli ve asenkron yapıları sayesinde hızlı ve verimli çalışır.
  • Modüler ve Ölçeklenebilir: Node.js, modüler bir yapıya sahiptir ve bu sayede kodunuzun yeniden kullanılabilirliğini artırır. Ayrıca, yüksek trafikli uygulamalarda kolayca ölçeklendirilebilir.
  • Çapraz Platform Desteği: Node.js, Windows, macOS ve Linux gibi farklı işletim sistemlerinde çalışabilir.
  • Geniş Ekosistem: Node.js'in npm paket yöneticisi sayesinde birçok hazır pakete erişebilir ve projenizi hızla geliştirebilirsiniz.

Node.js, web sunucusu oluşturmanızı, veritabanı işlemleri gerçekleştirmenizi, API'lar oluşturmanızı ve daha birçok web geliştirme işlemini kolaylaştırır.

2. Node.js'in Kurulumu

Node.js'i kullanmaya başlamak için öncelikle sisteminize kurmanız gerekmektedir. Node.js'ın resmi web sitesinden indirerek ve kurulum sihirbazını takip ederek kolayca kurabilirsiniz. Kurulum sırasında Node.js sürümünü de seçebilirsiniz.

Node.js'ün kurulumunu tamamladıktan sonra, node -v komutunu kullanarak Node.js sürümünü kontrol edebilirsiniz. Eğer sürüm numarası görünüyorsa, kurulum başarılı bir şekilde gerçekleşmiştir.

Node.js'in sürüm yönetimini kolaylaştıran nvm (Node Version Manager) gibi araçları kullanarak farklı Node.js sürümlerini yönetebilirsiniz.

3. Temel JavaScript Bilgisi

Node.js, JavaScript tabanlı bir platform olduğu için temel JavaScript bilgisine sahip olmanız önemlidir. JavaScript, değişkenler, veri tipleri, koşullar, döngüler, fonksiyonlar ve modüller gibi temel yapıları içerir.

Değişkenler, bir değeri saklamak için kullanılır. JavaScript'te değişkenler var, let veya const anahtar kelimeleriyle tanımlanır. Veri tipleri ise sayılar, metinler, boolean değerler gibi veri türlerini temsil eder.

Koşullar ve döngüler, programınızın belirli bir koşula bağlı olarak çalışmasını veya belirli bir işlemi tekrarlamasını sağlar. if-else, switch-case, for, while gibi yapılarla koşullar ve döngüler oluşturulabilir.

Fonksiyonlar, tekrar eden işlemleri bir araya getirerek kodunuzun daha düzenli ve anlaşılır olmasını sağlar. Fonksiyonlar, belirli bir işlevi yerine getirmek için kullanılır ve parametreler ve geri dönüş değerleri alabilir.

Modüller, kodunuzu farklı parçalara bölmek ve yeniden kullanılabilirliği artırmak için kullanılır. Node.js'de modüller module.exports ve require anahtar kelimeleriyle tanımlanır ve kullanılır.

4. Paket Yöneticisi npm

Node.js'in en önemli özelliklerinden biri, paket yöneticisi npm'dir. npm, Node.js paketlerinin yönetilmesini sağlar. Birçok hazır paketi npm aracılığıyla indirebilir ve projenize ekleyebilirsiniz.

npm ile paket kurmak için projenizin kök dizininde terminali açın ve npm install paket-adi komutunu kullanın. Bu komut, belirtilen paketi indirir ve projenize ekler.

Paketleri yönetmek için package.json dosyasını kullanabilirsiniz. Bu dosya, projenizin bağımlılıklarını ve yapılandırmasını tanımlar. npm init komutuyla başlangıçta bir package.json dosyası oluşturabilirsiniz.

5. Express.js ile Web Uygulamaları Geliştirme

Express.js, Node.js tabanlı bir web uygulama çatısıdır. Express.js, basit ve hızlı bir şekilde web sunucuları oluşturmanıza olanak sağlar.

Express.js'i kullanmak için öncelikle projenize eklemeniz gerekmektedir. npm install express komutunu kullanarak Express.js'i projenize ekleyebilirsiniz.

Express.js ile basit bir sunucu oluşturmak için aşağıdaki gibi bir kod parçasını kullanabilirsiniz:

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

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

app.listen(3000, () => {
console.log('Sunucu çalışıyor...');
});

Bu kod, tarayıcıdan gelen istekleri dinleyen ve "Merhaba Dünya!" yanıtını döndüren bir web sunucusu oluşturur.

6. Veritabanı İşlemleri

Node.js, çeşitli veritabanlarıyla entegrasyonu kolaylaştıran birçok kütüphaneye sahiptir. SQL ve NoSQL veritabanlarına erişmek için farklı kütüphaneler kullanabilirsiniz.

MongoDB, popüler bir NoSQL veritabanıdır ve Node.js ile kolayca entegre edilebilir. MongoDB'ye erişmek için mongoose adlı bir kütüphane kullanabilirsiniz. mongoose'u projenize eklemek için npm install mongoose komutunu kullanabilirsiniz.

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('MongoDB bağlantısı başarılı');
  })
  .catch((error) => {
    console.error('MongoDB bağlantı hatası:', error);
  });

Bu örnek kod, MongoDB veritabanına bağlanır ve bağlantı durumunu konsola yazdırır.

7. API Oluşturma

Node.js, API (Application Programming Interface) oluşturmayı kolaylaştırır. API'ler, farklı sistemler arasında veri iletişimini sağlar.

Express.js, API oluşturmak için yaygın olarak kullanılan bir çatıdır. API oluşturmak için HTTP metotlarını (GET, POST, PUT, DELETE vb.) ve JSON veri formatını kullanabilirsiniz.

app.get('/api/users', (req, res) => {
  const users = [
    { id: 1, name: 'Ahmet' },
    { id: 2, name: 'Ayşe' },
  ];

  res.json(users);
});

Bu örnek kod, /api/users yoluna yapılan GET isteğine yanıt olarak JSON formatında kullanıcıları döndürür.

8. WebSocket Kullanımı

WebSocket, gerçek zamanlı uygulamalar oluşturmanızı sağlar. Node.js ile WebSocket kullanmak için socket.io adlı bir kütüphane kullanabilirsiniz.

const http = require('http');
const socketio = require('socket.io');

const server = http.createServer(app);
const io = socketio(server);

io.on('connection', (socket) => {
  console.log('Yeni bir soket bağlantısı');

  socket.on('disconnect', () => {
    console.log('Bir soket bağlantısı koptu');
  });
});

Bu örnek kod, WebSocket bağlantılarını dinler ve yeni bağlantı ve kopma olaylarını konsola yazdırır.

9. Test ve Hata Ayıklama

Node.js uygulamalarını test etmek ve hataları ayıklamak önemlidir. Birim testleri ve hata ayıklama araçları kullanarak kodunuzu test edebilirsiniz.

Birim testleri, belirli fonksiyonların ve modüllerin doğru çalıştığını kontrol etmek için kullanılır. mocha, chai ve jest gibi araçlarla birim testleri oluşturabilirsiniz.

Hata ayıklama, kodunuzdaki hataları bulmak ve düzeltmek için kullanılır. console.log ve debugger ifadelerini kullanarak hata ayıklama yapabilirsiniz. Ayrıca, Chrome Geliştirici Araçları gibi tarayıcı araçlarını da kullanabilirsiniz.

10. Güvenlik ve Performans İyileştirmeleri

Web uygulamalarının güvenliği ve performansı önemlidir. Node.js ile güvenlik açıklarını önlemek ve performansı artırmak için bazı adımlar atabilirsiniz.

Cross-site Scripting (XSS) ve Cross-site Request Forgery (CSRF) gibi güvenlik açıklarına karşı önlemler almanız önemlidir. Verilerin doğruluğunu kontrol etmek, oturum yönetimini güvenli bir şekilde yapmak ve girişleri doğrulamak gibi adımlar güvenliği artırabilir.

Önbellekleme ve sıkıştırma gibi performans iyileştirmeleri de yapabilirsiniz. Önbellekleme, tekrar eden işlemleri hızlandırırken, sıkıştırma, veri boyutunu küçülterek transfer süresini azaltır.

Sonuç

Bu Node.js başlangıç rehberi, Node.js'in temellerini anlamanıza ve web geliştirmeye başlamanıza yardımcı olacak. Node.js'in sunduğu özellikleri kullanarak hızlı, ölçeklenebilir ve verimli web uygulamaları oluşturabilirsiniz. JavaScript bilgisi ve Express.js, WebSocket, MongoDB gibi kütüphanelerle entegrasyon becerilerinizi geliştirerek daha karmaşık projeler oluşturabilirsiniz. Güvenlik ve performans iyileştirmelerini unutmadan, web uygulamalarınızı daha güvenli ve hızlı hale getirebilirsiniz.