Node.js ile Blog API Geliştirme Rehberi: Proje Yapılandırması ve İlk Adımlar #1

Posted by

Merhaba arkadaşlar, yeni bir seriye başlıyoruz ve Node.js ile Blog Uygulaması için bir API yazacağız. Bu yazı serisinde uygulamamızın parçalarını bölüm bölüm anlatıyor olacağım. Yazı serimizi tamamladığımızda profesyonel olarak bir uygulamayı kodlamış olacağız.

Uygulamamızda veri tabanı olarak MongoDB kullanacağız. Veri tabanımızda User, Post, Category adında 3 tablomuz olacak. Bu tablolarımız için CRUD(Create, Read, Update, Delete) işlemlerimizi gerçekleştireceğiz. User için de Üye Girişi, Şifremi Unuttum, Şifre Güncelleme gibi seçeneklerimizi de ekleyeceğiz.

Örneklerimizi VS Code üzerinden anlatacağım ve uygulayacağım.

Uygulamayı geliştirmek için Node.js kurulu olması gerekmektedir. Bunu daha önceki yazılarımda anlatmıştım eğer Node.js kurulu değil ise https://nodejs.org/en adresinden kurulum dosyasını indirerek Node.js kurulumunu gerçekleştirebilirsiniz.

Uygulama, katmanlı mimariye uygun şekilde organize edilerek şu özellikleri içerecek:

Routes: İsteklerin yönlendirilmesi.
Controllers: İş mantığı.
Services: İşlemlerin gerçekleştirilmesi.
Models: Veri tabanı şemaları (MongoDB kullanacağız).
Config: Uygulama yapılandırması.
Utils: Yardımcı işlevler.
Middleware: Orta katman yazılımları (ör. kimlik doğrulama).

Proje Yapısı:

blog-app/
├── config/
│   ├── database.js
├── controllers/
│   ├── postController.js
│   ├── userController.js
├── middleware/
│   ├── authMiddleware.js
├── models/
│   ├── Post.js
│   ├── User.js
├── routes/
│   ├── postRoutes.js
│   ├── userRoutes.js
├── services/
│   ├── postService.js
│   ├── userService.js
├── utils/
│   ├── jwtHelper.js
│   ├── errorHandler.js
├── app.js
├── .env
├── package.json

Blog Uygulamamızı Oluşturmaya Başlayabiliriz.

Öncelikle projemizi belirlediğimiz bir klasörü açmamız gerekiyor.

Proje yolunuzu siz farklı bir yerde oluşturabilirsiniz. Ben D:\ sürücüsü altında oluşturacağım.
Örneğin D:\NodeJsProjects altında blog_app isimli bir klasör oluşturuyoruz ve bunu da VS Code ile açıyoruz. Klasör işlemlerinden sonra cmd üzerinden aşağıdaki komutlar ile klasörü seçerek VS Code ile açabiliriz.

cd D:\NodeJsProjects\blog_app

code . 

VS Code açıldıktan sonra Terminal penceresini açarak burada “npm init -y” komutunu çalıştırdığımızda projemiz için bir package.json dosyası oluşturacaktır.

Bu işlemden sonra gerekli olan paketlerin yüklemesini sağlamak için yine Terminal penceresinden aşağıdaki komutları yazarak yüklemeleri gerçekleştireceğiz. Bu paketler;

npm install express mongoose dotenv jsonwebtoken bcryptjs
npm install --save-dev nodemon

Kullanım Paketleri

express
Minimalist ve hızlı bir Node.js web uygulama çatısıdır. RESTful API’ler ve web uygulamaları geliştirmek için sıklıkla kullanılır.

mongoose
MongoDB ile çalışmayı kolaylaştıran bir Node.js ORM (Object Relational Mapping) aracıdır. MongoDB üzerinde şemalar tanımlayarak veri doğrulama, sorgulama ve ilişkileri yönetmenizi sağlar.

dotenv
Uygulamanın çevresel değişkenlerini bir .env dosyasından yüklemenize yardımcı olur. API anahtarları ve bağlantı dizeleri gibi hassas bilgileri saklamak için idealdir.

jsonwebtoken
JSON Web Token (JWT) oluşturmak, doğrulamak ve analiz etmek için kullanılan bir kütüphane. Kimlik doğrulama ve yetkilendirme işlemleri için yaygın olarak kullanılır.

bcryptjs
Parola gibi hassas verileri güvenli bir şekilde hash’lemek için kullanılan bir kütüphane. Parola saklama ve doğrulama işlemleri için idealdir.

bcrypt.js ile ilgili işlemler için yazımı inceleyebilirsiniz.

http://alicancevik.com/node-js-ile-bcrypt-kullanarak-sifre-hashleme-ve-dogrulama/

Geliştirme Paketi
nodemon
Node.js uygulamalarını geliştirme sırasında otomatik yeniden başlatma sağlayan bir araç. Kodu her değiştirdiğinizde sunucuyu manuel olarak yeniden başlatmaya gerek kalmaz.

Yüklemeleri yaptıktan sonra package.json içerisinde scripts kısmını aşağıdaki gibi güncelliyoruz.

"scripts": {
  "start": "node app.js",
  "dev": "nodemon app.js"
}

uygulamamız içerisinde klasörlerimizi oluşturuyoruz.

├── config/
├── controllers/
├── middleware/
├── models/
├── routes/
├── services/
├── utils/
Blog

Bir sonraki yazımda da config klasörü içerisinde veri tabanı bağlantısı için database.js dosyamızı oluşturacağız ve bağlantı sağlayan işlemleri gerçekleştireceğiz. Kodlarımızı yazdıktan sonra da app.js içerisinde bağlantımızı sağlayan kodu çağıracağız.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir