Altbilgi içeriğine atla
NODE YARDıM

Sequelize node js (Geliştiriciler İçin Nasıl Çalışır)

Sequelize Node.JS

Modern web geliştirme dünyasında, ölçeklenebilir ve güvenilir uygulamalar yaratmak için ön yüz ve arka uç işlemlerini etkili bir şekilde yönetebilen güçlü araçlar ve kütüphanelere ihtiyaç vardır. Sequelize ve IronPDF, Node.js uygulamalarında PDF üretimi ve veritabanı yönetimi için eksiksiz bir çözüm sunan iki yardımcı programdır.

Sequelize, Node.js için SQL veritabanlarıyla çalışmayı kolaylaştıran bir söz vermeli Obje İlişkisel Eşleme (ORM) sistemidir. PostgreSQL, MySQL, SQLite ve Microsoft SQL Server (MSSQL) dahil olmak üzere geniş SQL lehçelerini destekleyen Sequelize, geliştiricilerin JavaScript kullanarak modeller ve ilişkiler oluşturmasına imkan tanır. Sequelize, SQL veritabanı sorgularını anlaşılabilir bir sözdizimine soyutlayarak geliştirici deneyimini geliştirir ve model doğrulama, erken yükleme ve işlemler gibi özelliklerle karmaşık veritabanı işlemlerini basitleştirir.

Diğer yandan, IronPDF, Node.js uygulamalarıyla kolayca etkileşimde bulunan PDF oluşturma için sağlam bir kütüphanedir. Programcıların PDF belgelerine içerik ekleme, değiştirme ve kaldırma yapmalarını sağlar. HTML bilgisini PDF formatına dönüştürme konusundaki olağanüstü yeteneği ile IronPDF, çevrimiçi uygulamalardan doğrudan belge tabanlı çıktılar üretmek için harika bir araçtır, fatura ve raporlar gibi.

Sequelize Node.js Nedir?

Sequelize for Node.js, veritabanınızda güvenilir ve atomik işlemler sağlamak için sağlam işlem desteği sunan güçlü bir Obje İlişkisel Eşleme (ORM) sistemidir. Sequelize modelini kullanarak, geliştiriciler veri yapılarını etkili bir şekilde tanımlayabilir ve bunlarla etkileşimde bulunabilirler. Tembel yükleme gibi özellikler, yalnızca gerektiğinde ilgili verilerin alınmasıyla optimize edilmiş veritabanı sorguları sağlar. Sequelize obje ilişkisel eşleme aracı, tembel yükleme kullanarak veritabanı etkileşimini basitleştirir, bir örnek veritabanı veya üretim sistemiyle çalışmayı kolaylaştırır. Kolay veritabanı parola kimlik bilgisi yapılandırması ile, Sequelize çeşitli veritabanlarını, MySQL veritabanını da destekleyerek Node.js uygulamaları için çok yönlü bir seçenek sunar.

Sequelize node js (Geliştiriciler için Nasıl Çalışır): Şekil 1 - Sequelize- Güçlü işlem desteği

Sequelize Node.js Özellikleri

Node.js için popüler bir Obje-İlişkisel Eşleme (ORM) olan Sequelize, ilişkisel veritabanları ve ham SQL sorgularıyla çalışmayı kolaylaştırır. İşte bazı ayırt edici özellikleri:

Sözler: Geleneksel geri çağrılardan farklı olarak, Sequelize asenkron işlemler için Sözler kullanır, bu da daha temiz ve daha okunabilir kodla sonuçlanır.

Veritabanı Desteği: PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server ve daha fazlası gibi yaygın kullanılan ilişkisel veritabanları arasında seçim yapmanıza olanak sağlar.

Model Tanımı: JavaScript nesnelerini kullanarak, Sequelize veritabanı tablolarınıza eşdeğer modeller tanımlamanıza olanak tanır. Sonuç olarak, ham SQL yazma gereksinimi azalır ve veri modelleme basitleşir.

İlişkiler: Sequelize tablo ilişkilerini yönetmede oldukça iyidir. Modelleriniz arasındaki birden çoğa, çoktan çoğa ve birden bire gibi ilişkileri belirtebilirsiniz ve Sequelize arka planda karmaşık SQL sorgularını ele alır.

İşlemler: Birden fazla veritabanı işlemi gerçekleştirirken, Sequelize'nin güçlü işlem desteği veri tutarlılığını garanti eder.

Veri Eşitlemesi: Modelleriniz ve veritabanı yapınız Sequelize ile otomatik olarak senkronize edilebilir. Model tanımlarınıza dayalı tablo oluşturma veya güncellemeleri yaparken bu faydalı olabilir.

Göçler: Sequelize, veritabanı yapısındaki değişiklikleri zamanla ele almanıza olanak tanıyan etkili bir göç sistemi sunar. Veritabanı yapınız ile uygulama kodunuz arasında hizalanmayı sürdürmek zorunludur.

Doğrulamalar: Veritabanına veri depolanmadan önce, modelleriniz için veri bütünlüğünü sağlamak adına doğrulama kuralları oluşturabilirsiniz.

Ham Sorgular: Sequelize, soyutlama katmanının kullanmasını teşvik etse de, belirli iş yükleri için gerekli olduğunda ham SQL sorguları çalıştırmak için de kullanılabilir.

Tohumlama: Test veya geliştirme amacıyla, Sequelize veritabanınızı bazı başlangıç verileriyle tohumlamanıza olanak tanır.

Kapsamlar: Model sorgularınız için tekrar kullanılabilir filtrelerle tanımlayarak, kapsamlar karmaşık veri alımını daha iyi yönetmenize yardımcı olur.

Bunlar, Sequelize'ın çeşitli özelliklerinden sadece birkaçı. İlişkisel veritabanlarıyla çalışan Node.js geliştiricileri için kapsamlı özellikleri nedeniyle değerli bir araçtır.

Sequelize Node.js Oluştur ve Yapılandır

Node.js projenizde, SQLite3 ile Sequelize oluşturmak ve yapılandırmak için bu adımları kullanabilirsiniz:

Bagimliliklari Yukleme

Projenizde Sequelize CLI (komut satırı arayüzü), SQLite3 ve Sequelize'ı bağımlılıklar olarak yükleyin.

npm install sequelize
npm install sqlite3
npm install sequelize-cli
npm install sequelize
npm install sqlite3
npm install sequelize-cli
SHELL

Sequelize'u Başlat

Sıfırdan başlayın. Sequelize'u kullanarak projekt yapısını ve yapılandırma dosyalarını CLI ile ayarlayın.

npx sequelize-cli init
npx sequelize-cli init
SHELL

Yukarıdaki komut, Sequelize projeniz için gereken dizinleri ve dosyaları oluşturur.

Veritabanı Yapılandırın

Veritabanı bağlantısını ayarlamak için config.json dosyasını düzenleyin. SQLite3 yapılandırmanız şöyle görünebilir:

{
  "development": {
    "dialect": "sqlite",
    "storage": "./database/development.sqlite"
  },
  "test": {
    "dialect": "sqlite",
    "storage": ":memory:"
  },
  "production": {
    "dialect": "sqlite",
    "storage": "./database/production.sqlite"
  }
}

Bu yapılandırma, test, üretim ve geliştirme ortamları için farklı SQLite veritabanlarını belirtir.

Modeller Oluşturun

Sequelize modelleri için bir dosya oluşturmak için CLI kullanın. Örnek olarak, bir Kullanıcı modeli geliştirmek için:

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
SHELL

Bu komut, modeller dizininde bir model dosyası (user.js) ve göçler dizininde bir göç dosyası oluşturur.

Göçleri Çalıştır

SQLite veritabanında tablolar oluşturmak için göçleri çalıştırın.

npx sequelize-cli db:migrate
npx sequelize-cli db:migrate
SHELL

Uygulamada Sequelize Kullanın

Artık Node.js uygulamanızda, SQLite veritabanıyla arayüz oluşturmak için Sequelize'i kullanabilirsiniz. İşte Sequelize'i ayarlamak ve kullanmak için bir örnek:

// Import Sequelize and model definitions
const { Sequelize, DataTypes } = require('sequelize');
const UserModel = require('./models/user');

// Create Sequelize instance
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/development.sqlite', // Path to SQLite database file
});

// Define models
const User = UserModel(sequelize, DataTypes);

// Synchronize models with the database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
  })
  .catch((error) => {
    console.error('Error synchronizing database:', error);
  });

// Example usage
(async () => {
  try {
    // Create a new user
    const user = await User.create({
      firstName: 'John',
      lastName: 'Doe',
      email: 'john@example.com',
    });
    console.log('User created:', user.toJSON());

    // Retrieve all users
    const users = await User.findAll();
    console.log('All users:', users.map((user) => user.toJSON()));
  } catch (error) {
    console.error('Error:', error);
  }
})();
// Import Sequelize and model definitions
const { Sequelize, DataTypes } = require('sequelize');
const UserModel = require('./models/user');

// Create Sequelize instance
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/development.sqlite', // Path to SQLite database file
});

// Define models
const User = UserModel(sequelize, DataTypes);

// Synchronize models with the database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
  })
  .catch((error) => {
    console.error('Error synchronizing database:', error);
  });

// Example usage
(async () => {
  try {
    // Create a new user
    const user = await User.create({
      firstName: 'John',
      lastName: 'Doe',
      email: 'john@example.com',
    });
    console.log('User created:', user.toJSON());

    // Retrieve all users
    const users = await User.findAll();
    console.log('All users:', users.map((user) => user.toJSON()));
  } catch (error) {
    console.error('Error:', error);
  }
})();
JAVASCRIPT

Bu kod, modellerin nasıl oluşturulacağını, veritabanı ile senkronize edileceğini, SQLite3 ile Sequelize yapılandırılacağını ve temel veritabanı işlemlerini nasıl gerçekleştireceğinizi gösterir.

Sequelize node js (Geliştiriciler için Nasıl Çalışır): Şekil 2 - Sequelize Uygulama Çıktısı

Başlarken

Başlamak için, dinamik olarak oluşturulmuş kullanıcı veya öğrenci verileri ile bir PDF belgesi oluşturmak için IronPDF ve Sequelize Node.js JS kullanan bir örnek uygulama yapacağız. Bu, kapsamlı, adım adım bir talimat kılavuzudur.

IronPDF Nedir?

IronPDF, PDF dosyalarının oluşturulmasını, düzenlenmesini ve yönetilmesini basitleştirmek için tasarlanmış bir uygulama kütüphaneleri setidir. Bu araç ile geliştiriciler, HTML belgelerinden metin ve resim çıkartabilir, başlıklar ve filigranlar ekleyebilir, çok sayıda PDF belgesini birleştirebilir ve çeşitli diğer aktiviteler yapabilir. IronPDF'nin kapsamlı belgeleri ve sezgisel API'si, geliştiricilerin yüksek kaliteli PDF belgelerini otomatik olarak üretmesini basit hale getirir. IronPDF, geniş bir yelpazede senaryolar için belge iş akışlarını geliştirmek ve birinci sınıf kullanıcı deneyimleri sunmak için gerekli tüm özellikleri ve işlevsellikleri içerir, örneğin belgeler, raporlar ve faturalar oluşturma.

Sequelize node js (Geliştiriciler için Nasıl Çalışır): Şekil 3 - IronPDF

IronPDF'nin Özellikleri

HTML'den PDF'e dönüştürme, CSS ve JavaScript dahil her türlü HTML metnini işleyebilecek hızlı ve basit bir yöntemdir.

PDF dosyası birleştirme: Doküman yönetimi görevlerini kolaylaştırmak için birden fazla PDF dokümanını tek bir PDF dosyasında birleştirin.

Metin ve Resim Çıkarma: PDF dosyalardan metin ve resimleri çıkararak daha fazla veri işleme veya analiz için kullanın.

Filigranlama: Güvenlik veya markalama nedenleriyle PDF sayfalarına metin veya resim filigranları ekleyin.

Başlık ve Altbilgi Ekleme: PDF belgelerinin başlıkları ve altbilgileri, özelleştirilmiş bir mesaj veya sayfa numaraları eklemenize olanak tanır.

IronPDF yükleyin

IronPDF işlevselliğini etkinleştirmek için gerekli Node.js paketlerini node paket yöneticisi kullanarak kurun.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Sequelize nesnesini IronPDF Node.js ile entegre edin

Sequelize'u Node.js uygulamanızda IronPDF ile entegre etmek, veritabanından alınan verilere bağlı olarak PDF belgeleri oluşturmanızı sağlar. Bu işlemi nasıl yapacağınızı gösteren bazı kod örnekleri burada.

const { Sequelize, DataTypes } = require('sequelize');
const IronPdf = require("@ironsoftware/ironpdf");
const { PdfDocument } = IronPdf; // Use destructuring to import specific components

// 1. Initialize Sequelize
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/data.sqlite', // Path to SQLite database file
});

// 2. Define Model
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
});

// 3. Synchronize Model with Database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
    // 4. Seed Database (optional)
    return User.bulkCreate([
      { firstName: 'John', lastName: 'Doe', email: 'john@example.com' },
      { firstName: 'Jane', lastName: 'Smith', email: 'jane@example.com' },
    ]);
  })
  .then(() => {
    // 5. Query Database and Generate PDF
    return User.findAll();
  })
  .then((users) => {
    // Create HTML content for PDF
    const htmlContent = `
      <html>
        <head>
          <title>User List</title>
        </head>
        <body>
          <h1>User List</h1>
          <ul>
            ${users.map((user) => `<li>${user.firstName} ${user.lastName} - ${user.email}</li>`).join('')}
          </ul>
        </body>
      </html>
    `;

    // Create PDF from HTML content
    PdfDocument.fromHtml(htmlContent).then((pdf) => {
      // Save PDF to file
      pdf.saveAs('user-list.pdf');
      console.log('PDF generated successfully');
    }).catch((error) => {
      console.error('Error generating PDF:', error);
    });
  })
  .catch((error) => {
    console.error('Error:', error);
  });
const { Sequelize, DataTypes } = require('sequelize');
const IronPdf = require("@ironsoftware/ironpdf");
const { PdfDocument } = IronPdf; // Use destructuring to import specific components

// 1. Initialize Sequelize
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database/data.sqlite', // Path to SQLite database file
});

// 2. Define Model
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
});

// 3. Synchronize Model with Database
sequelize.sync({ force: true }) // Set force to true to drop existing tables
  .then(() => {
    console.log('Database synchronized');
    // 4. Seed Database (optional)
    return User.bulkCreate([
      { firstName: 'John', lastName: 'Doe', email: 'john@example.com' },
      { firstName: 'Jane', lastName: 'Smith', email: 'jane@example.com' },
    ]);
  })
  .then(() => {
    // 5. Query Database and Generate PDF
    return User.findAll();
  })
  .then((users) => {
    // Create HTML content for PDF
    const htmlContent = `
      <html>
        <head>
          <title>User List</title>
        </head>
        <body>
          <h1>User List</h1>
          <ul>
            ${users.map((user) => `<li>${user.firstName} ${user.lastName} - ${user.email}</li>`).join('')}
          </ul>
        </body>
      </html>
    `;

    // Create PDF from HTML content
    PdfDocument.fromHtml(htmlContent).then((pdf) => {
      // Save PDF to file
      pdf.saveAs('user-list.pdf');
      console.log('PDF generated successfully');
    }).catch((error) => {
      console.error('Error generating PDF:', error);
    });
  })
  .catch((error) => {
    console.error('Error:', error);
  });
JAVASCRIPT
  • Sequelize Başlatma: SQLite veritabanı dosyasının konumunu belirterek ve bir örnek oluşturarak Sequelize başlatılmalıdır.
  • Model Tanımı: Kullanıcı modelini, firstName, lastName ve email özelliklerini tanımlayarak oluşturun.
  • Model ve Veritabanı Senkronizasyonu: Modeli veritabanı ile hizalayın. Bu durumda, mevcut olan tablolar force: true seçeneği kullanılarak kaldırılır ve yeniden oluşturulur.
  • Veritabanını Tohumla: Veritabanını bazı başlangıç verileriyle tohumlamak için isteğe bağlı olarak bulkCreate() kullanabilirsiniz.
  • Veritabanını Sorgulama ve PDF Oluşturma: Kullanıcı verilerini almak için veritabanındaki kullanıcı modelini sorgulayın ve bir PDF oluşturun. Sonra, kullanıcı listesini örnek olarak kullanan HTML içeriği yazın. Son olarak, IronPDF kullanarak bir dosya oluşturmak ve bir PDF belgesi olarak işlemek için HTML içeriğini kaydedin.

Sequelize node js (Geliştiriciler için Nasıl Çalışır): Şekil 4 - PDF Çıktısı

Sonuç

Sonuç olarak, Node.js uygulamasında Sequelize ile IronPDF'i birleştirmek, bir veritabanından çekilen bilgilerle hızlı bir şekilde PDF belgeleri oluşturmanın güçlü bir yolunu sunar. Geliştiriciler, Sequelize'in ORM katmanı sayesinde SQL sorgularının ve etkileşimlerinin karmaşıklığından soyutlanarak uygulama mantığına odaklanabilirler. Bu, veritabanı bakımını kolaylaştırır.

Sequelize kullanarak geliştiriciler, veritabanı kayıtlarını hızla düzenleyebilir, sorgulayabilir ve yapılandırılmış bilgiler alabilirler. Bu entegrasyon, veritabanı verilerini doğrudan görülebilir raporlar, faturalar, beyanlar ve daha fazlasını oluşturarak fırsat pencereleri açar. IronPDF ise HTML bilgisini PDF belgelerine dönüştürmeyi sağlar.

IronPDF ve Iron Software teknolojilerini kurumsal uygulama geliştirme yığınızıza entegre ederek, müşteriler ve son kullanıcılar için zengin özelliklere sahip, yüksek düzeyde yazılım çözümleri garanti edebiliriz. Bu güçlü temel aynı zamanda projeleri, arka sistemleri ve süreç iyileştirmesini kolaylaştıracaktır. Ürün lisansları $799 tarafından sağlanmaktadır. Bu teknolojilerin zengin dokümantasyonu, canlı çevrimiçi geliştirici topluluğu ve sık güncellemeleri onları çağdaş yazılım geliştirme projeleri için harika bir seçim yapıyor.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimleri lisans derecesine sahiptir ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışmaktadır. Küçük yaşlardan itibaren kodlamaya ilgi duyan Darrius, bilişimi hem gizemli hem de erişilebilir buldu ve onu yaratıcılık ve problem çö...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara