Sequelize JavaScript (Node.js): पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

1. Sequelize क्या है और इसकी आवश्यकता क्यों है

Sequelize Node.js के लिए एक शक्तिशाली ORM (Object-Relational Mapping) लाइब्रेरी है, जो PostgreSQL, MySQL, MariaDB, SQLite और Microsoft SQL Server जैसी रिलेशनल डेटाबेस को सपोर्ट करती है। ORM डेवलपर्स को शुद्ध SQL क्वेरी लिखने के बजाय ऑब्जेक्ट-ओरिएंटेड तरीके से डेटाबेस के साथ इंटरैक्ट करने की सुविधा देता है।

Sequelize उपयोग करने के मुख्य लाभ:

  • SQL एब्स्ट्रैक्शन — JavaScript ऑब्जेक्ट और मेथड के माध्यम से टेबल के साथ काम करना
  • सुरक्षा — SQL इंजेक्शन से स्वचालित सुरक्षा
  • माइग्रेशन — डेटाबेस स्कीमा में बदलाव का प्रबंधन
  • रिलेशनशिप — टेबलों के बीच संबंधों की आसान इम्प्लीमेंटेशन (1:1, 1:M, M:N)
  • वैलिडेशन — डेटा जांच के लिए बिल्ट-इन मैकेनिज्म
  • ट्रांजेक्शन — एटॉमिक ऑपरेशन के लिए सपोर्ट

Sequelize REST API, Express.js वेब एप्लिकेशन, बॉट और किसी भी प्रोजेक्ट के लिए आदर्श है जहां SQL डेटाबेस के साथ विश्वसनीय काम की आवश्यकता होती है।

2. इंस्टॉलेशन

Sequelize और आपके डेटाबेस के लिए ड्राइवर npm के माध्यम से इंस्टॉल करें:

// बेसिक पैकेज
npm install sequelize

// PostgreSQL के लिए ड्राइवर
npm install pg pg-hstore

// MySQL के लिए ड्राइवर
npm install mysql2

// SQLite के लिए ड्राइवर
npm install sqlite3

// MSSQL के लिए ड्राइवर
npm install tedious

SQLite के साथ त्वरित शुरुआत (सर्वर इंस्टॉल करने की आवश्यकता नहीं):

npm install sequelize sqlite3

3. त्वरित शुरुआत कोड उदाहरण के साथ

यूज़र प्रबंधन के लिए एक सरल एप्लिकेशन बनाएं:

// index.js
const { Sequelize, DataTypes, Model } = require('sequelize');

// 1. डेटाबेस से कनेक्शन (SQLite)
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database.sqlite',
  logging: false // SQL क्वेरी लॉग बंद करें
});

// 2. User मॉडल डिफाइन करें
class User extends Model {}
User.init({
  id: {
    type: DataTypes.INTEGER,
    autoIncrement: true,
    primaryKey: true
  },
  name: {
    type: DataTypes.STRING,
    allowNull: false
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true
    }
  },
  age: {
    type: DataTypes.INTEGER,
    validate: {
      min: 0,
      max: 150
    }
  }
}, {
  sequelize,
  modelName: 'User',
  timestamps: true // createdAt और updatedAt जोड़ता है
});

// 3. डेटाबेस सिंक और टेस्ट ऑपरेशन
async function main() {
  await sequelize.sync({ force: true }); // टेबल नए सिरे से बनाएं
  console.log('User टेबल बन गई');

  // यूज़र बनाएं
  const user = await User.create({
    name: 'राहुल शर्मा',
    email: 'rahul@example.com',
    age: 30
  });
  console.log('यूज़र बनाया गया:', user.toJSON());

  // सभी यूज़र खोजें
  const users = await User.findAll();
  console.log('सभी यूज़र:', JSON.stringify(users, null, 2));

  // ID से खोजें
  const foundUser = await User.findByPk(1);
  console.log('यूज़र मिला:', foundUser.name);

  // अपडेट करें
  await User.update({ age: 31 }, { where: { id: 1 } });
  console.log('उम्र अपडेट की गई');

  // डिलीट करें
  await User.destroy({ where: { id: 1 } });
  console.log('यूज़र हटा दिया गया');
}

main().catch(console.error);

4. मुख्य मेथड और फंक्शन

4.1. Sequelize.define() / Model.init()

विवरण: फील्ड और उनके प्रकार निर्दिष्ट करके मॉडल (टेबल) डिफाइन करना।

पैरामीटर:

  • modelName — मॉडल का नाम
  • attributes — फील्ड डिफिनिशन वाला ऑब्जेक्ट
  • options — मॉडल सेटिंग्स (tableName, timestamps, indexes आदि)

उदाहरण:

const Product = sequelize.define('Product', {
  title: {
    type: DataTypes.ST                    

अनुशंसाएँ