ts-sql-query TypeScript: पूरी गाइड उदाहरणों के साथ
1. यह क्या है और क्यों ज़रूरी है
ts-sql-query TypeScript के लिए एक शक्तिशाली लाइब्रेरी है जो आपको पूरी तरह से टाइप-सेफ (type-safe) SQL क्वेरी लिखने की सुविधा देती है। यह SQL क्वेरी बनाने के लिए एक आसान DSL (Domain-Specific Language) प्रदान करती है, जहाँ हर क्वेरी को TypeScript कंपाइलर डेटाबेस स्कीमा के अनुसार चेक करता है। इसका मतलब है कि टेबल, फ़ील्ड या डेटा टाइप के नामों में गलतियाँ कंपाइलेशन के समय ही पकड़ी जाएँगी, रनटाइम पर नहीं।
यह क्यों ज़रूरी है? पारंपरिक तरीकों (जैसे कच्ची SQL स्ट्रिंग या ORM) में डेवलपर्स को अक्सर समस्याएँ होती हैं: कॉलम नामों में टाइपो, टाइप का मेल न होना, रिफैक्टरिंग में कठिनाई। ts-sql-query इन समस्याओं को हल करता है और सभी ऑपरेशनों के लिए सख्त टाइपिंग प्रदान करता है: SELECT, INSERT, UPDATE, DELETE, JOIN, सबक्वेरी, एग्रीगेट फंक्शन और भी बहुत कुछ। यह लाइब्रेरी कई DBMS (PostgreSQL, MySQL, SQLite, MariaDB, MSSQL) को सपोर्ट करती है और ड्राइवरों या कनेक्शन पूल के साथ काम कर सकती है।
ORM (जैसे TypeORM या Prisma) के विपरीत, ts-sql-query SQL को एब्स्ट्रैक्शन के पीछे नहीं छिपाता, बल्कि इसे TypeScript कोड का हिस्सा बनाता है। आप अब भी SQL लिखते हैं, लेकिन ऑटो-कम्प्लीशन, टाइप चेकिंग और SQL इंजेक्शन के जोखिम के बिना। यह उन प्रोजेक्ट्स के लिए आदर्श है जहाँ परफॉरमेंस और क्वेरी पर पूरा नियंत्रण ज़रूरी है, लेकिन साथ ही स्टैटिक टाइपिंग के फायदे भी चाहिए।
2. इंस्टॉलेशन
इंस्टॉलेशन npm के माध्यम से किया जाता है। आपको लाइब्रेरी और अपने डेटाबेस के लिए ड्राइवर इंस्टॉल करना होगा।
# मुख्य लाइब्रेरी इंस्टॉल करें
npm install ts-sql-query
# PostgreSQL ड्राइवर इंस्टॉल करें (उदाहरण)
npm install pg
# MySQL ड्राइवर इंस्टॉल करें
npm install mysql2
# SQLite ड्राइवर इंस्टॉल करें
npm install better-sqlite3
# SQLite ड्राइवर इंस्टॉल करें (एसिंक्रोनस)
npm install sql.js
# Node.js के लिए टाइप्स इंस्टॉल करें (यदि उपयोग कर रहे हैं)
npm install --save-dev @types/node
ड्राइवर इंस्टॉल करने के बाद, आपको डेटाबेस से कनेक्शन बनाना होगा। ts-sql-query हर ड्राइवर के लिए एडॉप्टर प्रदान करता है।
3. त्वरित शुरुआत — न्यूनतम काम करने वाला उदाहरण
PostgreSQL के लिए एक उदाहरण देखते हैं। एक सरल users टेबल बनाएँ और SELECT क्वेरी चलाएँ।
import { createPool } from 'pg';
import { PostgreSqlConnection } from 'ts-sql-query/connections/PostgreSqlConnection';
// 1. कनेक्शन पूल बनाएँ
const pool = createPool({
host: 'localhost',
port: 5432,
database: 'testdb',
user: 'user',
password: 'password',
});
// 2. कनेक्शन क्लास बनाएँ
class DBConnection extends PostgreSqlConnection {
// यहाँ टेबल के साथ काम करने के तरीके परिभाषित कर सकते हैं
}
// 3. कनेक्शन का इंस्टेंस बनाएँ
const connection = new DBConnection(pool);
// 4. users टेबल के लिए टाइप परिभाषित करें
interface User {
id: number;
name: string;
email: string;
age: number;
}
// 5. टेबल के साथ काम करने के लिए ऑब्जेक्ट बनाएँ
const users = connection.table('users').columns({
id: 'id',
name: 'name',
email: 'email',
age: 'age',
});
// 6. क्वेरी चलाएँ
async function getUsers() {
const query = connection
.selectFrom(users)
.select(users.id, users.name, users.email)
.where(users.age.greaterThan(18))
.orderBy(users.name, 'asc');
const result = await query.executeSelectMany();
return result;
}
getUsers().then(users => {
console.log('Users:', users);
}).catch(err => {
console.error('Error:', err);
});
इस उदाहरण में हमने कनेक्शन बनाया, टेबल परिभाषित की और SELECT क्वेरी चलाई। सभी टाइप्स कंपाइलर द्वारा चेक किए जाते हैं।