Sequelize का परिचय
Sequelize, Postgres, MySQL, MariaDB, SQLite, और Microsoft SQL Server जैसे विभिन्न सर्वरों के लिए प्रॉमिस-आधारित Node.js ORM है।
NodeJS Sequelize की कुछ मुख्य विशेषताएं निम्नलिखित हैं -
ट्रांजैक्शन सपोर्ट
रिलेशन्स (संबंध)
ईगर और लेज़ी लोडिंग
रीड रेप्लिकेशन और बहुत कुछ...
Sequelize का उपयोग करके MySQL से कनेक्ट करना
हमें Sequelize का उपयोग करके MySQL और Node.js के बीच कनेक्शन स्थापित करने की आवश्यकता है।
Sequelize के साथ सफल कनेक्शन बनाने के बाद, हमें कॉन्फ़िगरेशन के लिए निम्नलिखित तीन फ़ाइलों की आवश्यकता होगी। कृपया इन फ़ाइलों को केवल उनके संबंधित फ़ोल्डरों में सावधानीपूर्वक बनाएं।
SequelizeDemo > application.js
यह हमारी रूट फ़ाइल होगी जिसमें वास्तविक लॉजिक होगा।
SequelizeDemo > utils > database.js
यह MySQL से कनेक्शन के सभी विवरण रखेगा।
SequelizeDemo > models > user.js
इसमें आवश्यक मॉडल जानकारी होगी।
उदाहरण
Database.js कॉन्फ़िगर करें
const Sequelize = require('sequelize')
const sequelize = new Sequelize(
'YOUR_DB_NAME', // TutorialsPoint
'YOUR_DB_USER_NAME', // root
'YOUR_DB_PASSWORD', // root
{
dialect: 'mysql',
host: 'localhost'
}
);
module.exports = sequelize
अपने डेटाबेस से कनेक्ट करने के लिए सभी इनपुट डालें।
User.js कॉन्फ़िगर करें
एक मॉडल और एक टेबल के बीच मैपिंग को परिभाषित करने के लिए इस फ़ाइल का उपयोग करें।
const Sequelize = require('sequelize')
const sequelize = require('../utils/database')
const User = sequelize.define('user', {
// कॉलम #1 का नाम और इसके गुण: id
user_id: {
// INTEGER डेटा प्रकार
type: Sequelize.INTEGER,
// मान को स्वचालित रूप से बढ़ाएं
autoIncrement: true,
// user_id null नहीं हो सकता।
allowNull: false,
// उपयोगकर्ता को विशिष्ट रूप से पहचानने के लिए
primaryKey: true
},
// कॉलम #2 का नाम: name
name: { type: Sequelize.STRING, allowNull: false },
// कॉलम #3 का नाम: email
email: { type: Sequelize.STRING, allowNull: false },
// कॉलम: टाइमस्टैम्प्स
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE,
})
module.exports = User
app.js कॉन्फ़िगर करें
एक मॉडल बनाने के लिए, हम निम्न दो विधियों में से किसी एक का उपयोग कर सकते हैं -
sync() विधि - केवल तभी मॉडल बनाती है यदि वह मौजूद नहीं है। यदि मॉडल मौजूद है, तो यह मॉडल को ओवरराइट नहीं करेगी।
sync({force: true}) विधि - यदि मॉडल मौजूद नहीं है तो एक नया मॉडल बनाएगी, हालांकि, यदि मॉडल मौजूद है, तो यह मौजूदा मॉडल को ओवरराइट कर देगी।
// डेटाबेस मॉडल इम्पोर्ट करना
const sequelize = require('./database')
// यूज़र मॉडल इम्पोर्ट करना
const User = require('./user')
// user में परिभाषित सभी टेबल बनाना
sequelize.sync()
// आप user.js फ़ाइल बदल सकते हैं
// और यह जांचने के लिए इस कोड को चलाएं कि क्या यह मौजूदा कोड को ओवरराइट करता है।
sequelize.sync({force:true})
आउटपुट
उपरोक्त प्रोग्राम चलाने पर, आपको निम्न आउटपुट मिलेगा -
C:\Users\SequelizeDemo>> node app.js Executing (default): CREATE TABLE IF NOT EXISTS `users` (`user_id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `createdAt` DATETIME, `updatedAt` DATETIME, PRIMARY KEY (`user_id`)) ENGINE=InnoDB; Executing (default): SHOW INDEX FROM `users`
अब, आप अपने डेटाबेस की जांच कर सकते हैं। उपरोक्त टेबल बन गई होगी।