Altbilgi içeriğine atla
NODE YARDıM

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

Sequelize Node.JS

Çağdaş web geliştirme dünyasında, ölçeklenebilir ve güvenilir uygulamalar oluşturmak, ön uç ve arka uç işlemlerini etkili bir şekilde yerine getirebilen güçlü araçlar ve kitaplıklar gerektirir. Bu tür iki yardımcı program, birleştirildiğinde Node.js uygulamalarında PDF üretimi ve veritabanı yönetimi için eksiksiz bir çözüm sunan Sequelize ve IronPDF'dir.

Sequelize, Node.js için SQL veritabanlarıyla çalışmayı kolaylaştıran bir vaat tabanlı Nesne İlişkisel Haritalama (ORM)'dir. PostgreSQL, MySQL, SQLite ve Microsoft SQL Server (MSSQL) gibi SQL dillerine geniş desteğiyle geliştiriciler, model ve ilişkileri JavaScript kullanarak oluşturabilir. Sequelize, SQL veritabanı sorgularını anlaşılabilir bir sözdizimine soyutlayarak geliştirici deneyimini artırır ve model doğrulama, sabırsız yükleme ve işlemler gibi özelliklerle karmaşık veritabanı işlemlerini kolaylaştırır.

Öte yandan, IronPDF, Node.js uygulamalarıyla kolayca etkileşime giren PDF'ler oluşturmak için sağlam bir kitaplıktır. Programcılara PDF belgelerine içerik eklemeleri, değiştirmeleri ve çıkarmaları sağlar. HTML bilgilerini PDF formatına dönüştürmedeki olağanüstü yeteneğiyle IronPDF çevrimiçi uygulamalardan doğrudan belge tabanlı çıktılar üretmek için mükemmel bir araçtır, örneğin faturalar ve raporlar gibi.

Sequelize Node.js Nedir?

Sequelize Node.js için, veritabanınız üzerinde güvenilir ve atomik işlemler sağlayan sağlam işlem desteği sunan güçlü bir Nesne İlişkisel Haritalama (ORM)'dir. Sequelize modelini kullanarak, geliştiriciler veri yapılarıyla etkili bir şekilde tanımlayabilir ve etkileşime geçebilir. Diğer SQL sorguları yalnızca gerektiğinde ilişkilendirilmiş verileri getirerek optimizasyon sağlar. Sequelize nesne-ilişkisel haritacısı, tembel yüklemeyi kullanarak veritabanı etkileşimini basitleştirir ve örnek bir veritabanı veya bir üretim sistemiyle çalışmayı kolaylaştırır. Veritabanı şifre kimlik bilgilerini kolayca yapılandırarak, MySQL veritabanını da içeren çeşitli veritabanlarını destekler, bu da Node.js uygulamaları için çok yönlü bir seçim haline gelir.

Sequelize Node.js (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Sequelize- Sağlam işlem desteği

Sequelize Node.js Özellikleri

Sequelize, ilişkisel veritabanları ve ham SQL sorgularıyla çalışmayı kolaylaştıran Node.js için popüler bir Nesne-İlişkilendirici Haritalayıcı (ORM)'dir. İşte bazı önemli özellikleri:

Vaatler: Geleneksel geri çağrılardan farklı olarak, Sequelize asenkron işlemler için Vaatler kullanır, bu da daha temiz ve okuması daha kolay kod sağlar.

Veritabanı Desteği: PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server ve daha fazlası dahil olmak üzere birçok yaygın kullanılan ilişkisel veritabanını seçmenizi sağlar.

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

İlişkiler: Sequelize tablo ilişkilerini yönetmede oldukça iyidir. Modelleriniz arasında bire çok, çoktan çoğa ve bire bir gibi ilişkileri belirleyebilirsiniz ve Sequelize arka planda karmaşık SQL sorgularını yönetir.

İşlemler: Birkaç veri tabanı işlemi gerçekleştirirken, Sequelize'in sağlam işlem desteği veri tutarlılığını garanti eder.

Veri Senkronizasyonu: Modelleriniz ve veritabanı yapınız Sequelize ile otomatik olarak senkronize edilebilir. Model tanımlarınıza dayanan tabloları oluştururken veya güncellerken bu faydalı olabilir.

Geçişler: Sequelize, veritabanı yapısındaki değişiklikleri zaman içinde yönetmenize olanak tanıyan etkili bir geçiş sistemi sağlar. Veritabanı yapınız ve uygulama kodunuz arasında uyum sağlamak çok önemlidir.

Doğrulamalar: Veritabanına veri depolanmadan önce, veri tutarlılığını sağlamak için modelleriniz için doğrulama kuralları belirleyebilirsiniz.

Ham Sorgular: Sequelize, abstraction katmanını kullanmayı teşvik etse de, belirli iş yükleri için gerekirse ham SQL sorgularını çalıştırmak için de kullanılabilir.

Tohumlama: Test veya geliştirme nedenleriyle, Sequelize veritabanınızı başlangıç verileriyle tohumlamanın bir yolunu sunar.

Kapsamlar: Model sorgularınız için yeniden kullanılabilir filtreler tanımlayarak, kapsamlar karmaşık verilerin alınmasını daha iyi yönetmenizi sağlar.

Bunlar, Sequelize'in birçok özelliğinden yalnızca birkaçıdır. Kapsamlı özellikleri nedeniyle ilişkisel veritabanları ile çalışan Node.js geliştiricileri için paha biçilmez bir araçtır.

Sequelize Node.js oluştur ve yapılandır

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

Bağımlılıkları Kurun

Projenize Sequelize CLI (komut satırı arayüzü), SQLite3 ve Sequelize'ı bağımlılık 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 Başlat

Başlangıçtan başlayın. Proje yapısını ve yapılandırma dosyalarını CLI kullanarak Sequelize ile ayarlayın.

npx sequelize-cli init
npx sequelize-cli init
SHELL

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

Veritabanı Yapılandır

Veritabanı bağlantısını ayarlamak için config.json dosyasını düzenleyin. SQLite3 yapılandırmanız şu şekilde olabilir:

{
  "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ı belirtir.

Modelleri Oluştur

CLI kullanarak Sequelize modelleri için bir dosya oluşturun. Bir Kullanıcı modeli geliştirmek için bir örnek olarak:

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 geçişler dizininde bir geçiş dosyası oluşturur.

Geçişleri Çalıştır

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

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

Uygulamada Sequelize kullanın

Sequelize kullanarak Node.js uygulamanızda SQLite veritabanıyla arayüz oluşturabilirsiniz. İşte Sequelize'ı yapılandırma ve kullanmaya dair 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, modeller oluşturmayı, bunları veritabanıyla senkronize etmeyi, SQLite3 ile Sequelize'ı yapılandırmayı ve temel veritabanı işlemlerini gerçekleştirmeyi gösterir.

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

Başlarken

Başlamak için, kullanıcı veya öğrenci verileriyle dinamik olarak oluşturulan bir PDF belgesi oluşturmak için IronPDF ve Sequelize Node.js JS kullanan bir örnek uygulama inşa edeceğiz. Bu kapsamlı, adım adım bir kılavuzdur.

IronPDF Nedir?

IronPDF, PDF dosyalarının oluşturulmasını, düzenlenmesini ve yönetilmesini basitleştiren bir uygulama kitaplıkları setidir. Bu araç sayesinde, geliştiriciler HTML belgelerinden metin ve görüntüler çıkarabilir, üstbilgiler ve filigranlar ekleyebilir, birçok PDF belgesini birleştirebilir ve çeşitli diğer görevleri gerçekleştirebilir. IronPDF'nin kapsamlı dokümantasyonu ve sezgisel API'si sayesinde geliştiriciler yüksek kaliteli PDF belgelerini otomatik olarak oluşturabilir. IronPDF, belgelerin iş akışlarını geliştirmek ve belgeler, raporlar ve faturalar oluşturmak gibi çeşitli senaryolarda birinci sınıf kullanıcı deneyimleri sunmak için gereken tüm özellikleri ve işlevsellikleri içerir.

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

IronPDF Özellikleri

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

PDF dosyası birleştirme: Belge yönetim görevlerini kolaylaştırmak için birçok PDF belgesini tek bir PDF dosyasında bir araya getirin.

Metin ve Görüntü Çıkarma: Ek veri işleme veya analiz için PDF dosyalarından metin ve görselleri çıkarın.

Filigran Eklemek: Güvenlik veya marka oluşturma nedenleriyle, PDF sayfalarına metin veya resim filigranları ekleyebilirsiniz.

Üstbilgi ve Altbilgi Ekle: PDF belgelerinin üstbilgi ve alt bilgileri, kişiselleştirilmiş bir mesaj veya sayfa numaraları eklemenizi sağlar.

IronPDF Kurulum

IronPDF özelliğini etkinleştirmek için gereken Node.js paketlerini, node package manager kullanarak yükleyin.

npm i @ironsoftware/ironpdf

Sequelize nesnesini IronPDF Node.js ile Entegre Et

Bir Node.js uygulamasında Sequelize ile IronPDF'i entegre etmek, veritabanından alınan verilere bağlı olarak PDF belgeleri oluşturmanızı sağlar. İşte bu işlemi nasıl gerçekleştirebileceğinizi gösteren bir kod örneği.

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şlat: Bir örnek oluşturup SQLite veritabanı dosyasının yolunu geçirerek Sequelize'i başlatın.
  • Model Tanımı: Bir Kullanıcı modelini firstName, lastName ve email özelliklerini tanımlayarak oluşturun.
  • Model ve Veritabanı Senkronizasyonu: Modeli veritabanı ile hizalayın. Bu durumda, zaten var olan tablolar force: true seçeneği kullanılarak bırakılır ve yeniden oluşturulur.
  • Veritabanını Tohumlamak: Veritabanını bazı başlangıç verileri ile isteğe bağlı olarak tohumlamak için bulkCreate() kullanabilirsiniz.
  • Veritabanını Sorgula ve PDF Oluştur: Kullanıcı verilerini almak için veritabanındaki kullanıcı modelini sorgulayın ve bir PDF oluşturun. Sonraki adımda, kullanıcı listesini örnek olarak kullanarak HTML içeriği yazın. Son olarak, IronPDF kullanarak bir dosya oluşturmak üzere HTML içeriğini kaydedin ve bunu bir PDF belgesi olarak render edin.

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

Sonuç

Sonuç olarak, Node.js uygulamasında Sequelize ile IronPDF'in birleştirilmesi, veritabanından çekilen bilgileri kullanarak uçuyor PDF belgeleri oluşturmak için güçlü bir yol sağlar. Sequelize'in ORM katmanı, SQL sorgularının ve etkileşimlerin karmaşıklığını soyutlayarak geliştiricilerin veritabanı komplikasyonları yerine uygulama mantığına odaklanmalarını sağlar. Bu, veritabanı bakımını kolaylaştırır.

Sequelize'u kullanarak geliştiriciler hızlı bir şekilde veri düzenleyebilir, veritabanı kayıtlarını sorgulayabilir ve yapılandırılmış bilgilere erişebilir. Bu entegrasyon, IronPDF ile birlikte, HTML bilgilerini PDF belgelerine dönüştürmeye olanak tanıyan veri tabanı verilerine doğrudan raporlar, faturalar, bildirimler ve daha fazlasını oluşturma fırsatları açar.

IronPDF ve Iron Software teknolojilerini kuruluş uygulama geliştirme yığınıza entegre ederek, zengin özelliklere sahip, üst düzey yazılım çözümlerini müşteriler ve son kullanıcılar için garanti edebilirsiniz. Bu sağlam temel, projeleri, arka sistemleri ve süreç geliştirmeyi de kolaylaştıracaktır. Ürün lisansları $999'den temin edilebilir. Bu teknolojilerin zengin dokümantasyonu, canlı çevrimiçi geliştirici topluluğu ve sık sık güncellemeleri, modern yazılım geliştirme projeleri için harika bir seçimdir.

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

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimi alanında Lisans Derecesine sahip ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışıyor. Genç yaşlardan itibaren kodlamaya çekildi, bilgisayar bilimi hem gizemli hem de erişilebilir olarak görüldü ve bu özellik, yaratıcılık ...

Daha Fazla Oku

Iron Destek Ekibi

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