जावास्क्रिप्ट में डेटाबेस के साथ काम करना: PostgreSQL और MongoDB व्यवहार में

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

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

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

परिचय: डेवलपर को SQL और NoSQL क्यों जानना चाहिए?

\n

जावास्क्रिप्ट (Node.js) में आधुनिक वेब डेवलपमेंट शायद ही कभी डेटाबेस के साथ इंटरैक्शन के बिना होता है। रिलेशनल (PostgreSQL) और डॉक्यूमेंट-ओरिएंटेड (MongoDB) DBMS के बीच चुनाव प्रमुख आर्किटेक्चरल कार्यों में से एक है। इस लेख में, हम व्यवहार में देखेंगे कि दोनों डेटाबेस से कैसे कनेक्ट किया जाए, CRUD संचालन कैसे किया जाए और किसी विशिष्ट कार्य के लिए उपयुक्त टूल कैसे चुना जाए।

\n

हम लोकप्रिय लाइब्रेरी का उपयोग करेंगे: PostgreSQL के लिए pg और MongoDB के लिए mongoose। सभी कोड उदाहरण Node.js पर हैं।

\n\n

1. Node.js में PostgreSQL: रिलेशनल दृष्टिकोण

\n

1.1. कनेक्शन और कॉन्फ़िगरेशन

\n

PostgreSQL SQL समर्थन के साथ एक शक्तिशाली रिलेशनल DBMS है। Node.js में इसके साथ काम करने के लिए, पैकेज pg इंस्टॉल करें:

\n
npm install pg
\n

स्थानीय डेटाबेस mydb से कनेक्शन का उदाहरण:

\n
const { Pool } = require('pg');\n\nconst pool = new Pool({\n  user: 'postgres',\n  host: 'localhost',\n  database: 'mydb',\n  password: 'secret',\n  port: 5432,\n});\n\n// कनेक्शन का परीक्षण\npool.query('SELECT NOW()', (err, res) => {\n  if (err) {\n    console.error('कनेक्शन त्रुटि:', err);\n  } else {\n    console.log('PostgreSQL से कनेक्ट:', res.rows[0].now);\n  }\n});
\n\n

1.2. CRUD संचालन (सृजन, पढ़ना, अद्यतन, हटाना)

\n

हम एक तालिका users बनाएंगे और बुनियादी संचालन करेंगे।

\n

तालिका बनाना:

\n
const createTable = async () => {\n  const query = `\n    CREATE TABLE IF NOT EXISTS users (\n      id SERIAL PRIMARY KEY,\n      name VARCHAR(100) NOT NULL,\n      email VARCHAR(100) UNIQUE NOT NULL,\n      age INTEGER\n    );\n  `;\n  await pool.query(query);\n  console.log('तालिका users बनाई गई');\n};\n\ncreateTable();
\n

डेटा सम्मिलित करना (INSERT):

\n
const addUser = async (name, email, age) => {\n  const query = 'INSERT INTO users (name, email, age) VALUES ($1, $2, $3) RETURNING *';\n  const values = [name, email, age];\n  const res = await pool.query(query, values);\n  console.log('उपयोगकर्ता जोड़ा गया:', res.rows[0]);\n};\n\naddUser('इवान पेत्रोव', 'ivan@example.com', 30);
\n

डेटा पढ़ना (SELECT):

\n
const getUsers = async () => {\n  const res = await pool.query('SELECT * FROM users');\n  console.log('सभी उपयोगकर्ता:', res.rows);\n};\n\ngetUsers();
\n

डेटा अद्यतन (UPDATE):

\n
const updateUserAge = async (id, newAge) => {\n  const query = 'UPDATE users SET age = $1 WHERE id = $2 RETURNING *';\n  const values = [newAge, id];\n  const res = await pool.query(query, values);\n  console.log('उपयोगकर्ता अद्यतन किया गया:', res.rows[0]);\n};\n\nupdateUserAge(1, 31);
\n

डेटा हटाना (DELETE):

\n
const deleteUser = async (id) => {\n  const query = 'DELETE FROM users WHERE id = $1 RETURNING *';\n  const values = [id];\n  const res = await pool.query(query, values);\n  console.log('उपयोगकर्ता हटाया गया:', res.rows[0]);\n};\n\ndeleteUser(1);
\n

पैरामीटराइज़्ड क्वेरी ($1, $2) के उपयोग पर ध्यान दें। यह SQL इंजेक्शन से बचाता है।

\n\n

1.3. PostgreSQL कब चुनें?

\n
    \n
  • डेटा की सख्त संरचना और अखंडता समर्थन (विदेशी कुंजी, लेन-देन) आवश्यक है।
  • \n
  • जटिल JOIN क्वेरी और एग्रीगेशन आवश्यक हैं।
  • \n
  • वित्तीय या महत्वपूर्ण डेटा के साथ काम करना।
  • \n
  • प्रोजेक्ट Sequelize या TypeORM जैसे ORM का उपयोग करता है।
  • \n
\n\n

2. Node.js में MongoDB: NoSQL की लचीलापन

\n

2.1. Mongoose के माध्यम से कनेक्शन

\n

MongoDB एक डॉक्यूमेंट-ओरिएंटेड डेटाबेस है जहाँ डेटा JSON-like (BSON) प्रारूप में संग्रहीत होता है। काम करने के लिए mongoose इंस्टॉल करें:

\n
npm install mongoose
\n

स्थानीय Mo सर्वर से कनेक्शन

ब्लॉग

पुस्तक अनुशंसाएँ