Dinamik Web İçeriği Oluşturmanın Gücü: View Engine Nedir ve EJS ile Nasıl Kullanılır?

Web uygulamaları geliştirilirken, dinamik içeriğin oluşturulması ve istemciye sunulması büyük önem taşır. İşte burada devreye view engine'ler girer. Bu blog yazısında, view engine kavramını, en popüler view engine'leri ve özellikle EJS (Embedded JavaScript) ile dinamik içerik oluşturmayı ele alacağız.

View Engine Nedir?

View engine, bir web uygulamasında dinamik içeriği oluşturmak için kullanılan bir araç veya çatıdır. View engine'ler, sunucu tarafında çalışarak HTML, CSS ve JavaScript gibi frontend teknolojilerini dinamik verilerle birleştirir ve sonuç olarak istemciye (tarayıcıya) hazır bir HTML çıktısı gönderir. Bu sayede web uygulamaları, değişken verilerle oluşturulmuş dinamik içerikleri hızlı ve etkin bir şekilde sunabilir.

Hayal et, bir yapbozun parçalarını bir araya getiriyorsun. Yapboz parçaları, senin oluşturduğun resmin parçalarıdır. İşte view engine de web sayfasının yapboz parçalarını bir araya getiren araç gibidir.

En Çok Tercih Edilen View Engine’ler

EJS (Embedded JavaScript):

  • JavaScript kodları ile HTML şablonları oluşturmayı sağlar, basit ve etkilidir.
  • HTML içinde JavaScript yazmaya imkan tanır.

Pug (eski adıyla Jade):

  • Minimalist bir sözdizimiyle temiz ve okunabilir HTML oluşturmayı sağlar, Python'un indentasyon yapısına benzeyen bir yapıya sahiptir.
  • Daha az kodla daha fazlasını yapmayı sağlar.

Handlebars:

  • Mustache şablonlama diline dayanır ve JavaScript ile kolay entegrasyon sağlar, dinamik içerikleri kolayca yönetmek için kullanılır.
  • Süslü parantezler ({}) ile değişkenleri ve ifadeleri gösterir.

Bu View Engine’ların Birbirleriyle Karşılaştırıldığında Öne Çıkan Özellikleri

Sözdizimi ve Yapı:

  • EJS: JavaScript kodları ile HTML şablonları oluşturur, genellikle daha geleneksel bir HTML yapısına sahiptir.
  • Pug (Jade): Minimalist ve indentasyon yapısına dayalı bir sözdizimine sahiptir, kodun okunabilirliğini artırır.
  • Handlebars: Mustache diline dayanır, süslü parantezler ({}) ile değişkenleri ve ifadeleri gösterir, JavaScript nesneleriyle entegrasyonu kolaydır.

Kullanım Kolaylığı:

  • EJS: JavaScript geliştiriciler için doğal ve kolay bir geçiş sağlar, mevcut JavaScript bilgisiyle hızlıca öğrenilebilir.
  • Pug (Jade): Minimalist yapısı sayesinde daha az kodla daha fazla şey yapmayı sağlar, ancak başlangıçta indentasyon yapısı kafa karıştırıcı olabilir.
  • Handlebars: Basit ve okunabilir bir sözdizimi vardır, şablonlar kolayca anlaşılabilir ve düzenlenebilir.

Performans:

  • EJS, Pug (Jade), Handlebars:Performans açısından genellikle benzerdir, ancak uygulamanızın ihtiyaçlarına ve optimize edilmesine bağlı olarak farklılık gösterebilir.

Genişletilebilirlik ve Özellikler:

  • EJS: Temel özelliklere odaklanır, ancak genişletilebilirlik açısından diğerlerine kıyasla daha sınırlı olabilir.
  • Pug (Jade): Geniş bir özellik seti ve modüler yapıya sahiptir, karmaşık uygulamalar için daha fazla esneklik sunar.
  • Handlebars: Mustache dilinin avantajlarına sahiptir, basit ve anlaşılabilir bir yapı sunar, ancak bazı durumlarda karmaşık şablonlar için yetersiz kalabilir.

EJS Nedir ve Nasıl Kullanılır?

EJS (Embedded JavaScript), JavaScript kodları ile HTML şablonları oluşturmayı sağlayan basit ve etkili bir view engine'dir. EJS, özellikle JavaScript geliştiricilerinin aşina olduğu bir sözdizimi kullanarak HTML içinde JavaScript yazmaya imkan tanır.

EJS Kurulumu

Öncelikle, EJS'i kullanmak için gerekli olan paketleri yükleyelim:

npm install express ejs

Basit Bir EJS Örneği

Basit bir Express.js uygulaması oluşturarak EJS ile dinamik içerik nasıl oluşturulur görelim.

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

// EJS'i view engine olarak ayarla
app.set('view engine', 'ejs');

// Ana sayfa route'u
app.get('/', (req, res) => {
  const message = 'Merhaba EJS!';
  res.render('index', { message: message });
});

app.listen(port, () => {
  console.log(`Sunucu http://localhost:${port} adresinde çalışıyor`);
});

EJS Şablonu Oluşturma

Proje kök dizininde views adında bir klasör oluşturun ve bu klasör içinde index.ejs adında bir dosya oluşturun. Aşağıdaki kodları bu dosyaya ekleyin:


<!DOCTYPE html>
<html>
<head>
  <title>EJS Örneği</title>
</head>
<body>
  <h1><%= message %></h1>
</body>
</html>

API Örneği: Kullanıcı Listesi

Şimdi daha kapsamlı bir örnek yapalım. Bir kullanıcı listesi görüntüleyelim ve bu listeyi dinamik olarak oluşturalım.

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

app.set('view engine', 'ejs');

// Kullanıcı listesi
const users = [
  { name: 'Ali', age: 25 },
  { name: 'Ayşe', age: 22 },
  { name: 'Mehmet', age: 30 }
];

app.get('/', (req, res) => {
  res.render('index', { users: users });
});

app.listen(port, () => {
  console.log(`Sunucu http://localhost:${port} adresinde çalışıyor`);
});

index.ejs dosyasını aşağıdaki gibi güncelleyin:


<!DOCTYPE html>
<html>
<head>
  <title>Kullanıcı Listesi</title>
</head>
<body>
  <h1>Kullanıcı Listesi</h1>
  <ul>
    <% users.forEach(function(user) { %>
      <li><%= user.name %> - <%= user.age %></li>
    <% }); %>
  </ul>
</body>
</html>

Bu örnekte, kullanıcı listesini dinamik olarak oluşturduk ve EJS ile HTML içinde görüntüledik.

Bu yazıda, view engine kavramını, popüler view engine'leri ve özellikle EJS ile dinamik içerik oluşturmayı inceledik. EJS'in basit ve etkili yapısı sayesinde, Express.js ile dinamik web sayfaları oluşturmak oldukça kolaydır. Verdiğimiz örnekler ile EJS'in gücünü ve esnekliğini daha iyi anlamış olmalısınız. Artık kendi projelerinizde EJS'i kullanarak dinamik içerikler oluşturabilirsiniz.
 

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye