परिचय
\nआधुनिक वेब डेवलपमेंट REST API के बिना अकल्पनीय है। यह वह नींव है जिस पर मोबाइल ऐप्स, SPA-फ्रंटएंड और माइक्रोसर्विसेज बनाए जाते हैं। यदि आप नौसिखिया हैं और जल्दी से backend बनाना सीखना चाहते हैं, तो TypeScript + Express का संयोजन एक आदर्श शुरुआत है। TypeScript JavaScript में सख्त टाइपिंग जोड़ता है, जो कोड को अधिक विश्वसनीय और समझने योग्य बनाता है, खासकर टीम में काम करते समय।
\nइस गाइड में हम 30 मिनट में कार्यों की सूची (Todo list) के प्रबंधन के लिए एक पूर्ण REST API बनाएंगे। आप प्रोजेक्ट सेट अप करना, डेटा मॉडल का वर्णन करना, रूट बनाना और डेटाबेस कनेक्ट करना सीखेंगे। कोई अनावश्यक सिद्धांत नहीं - केवल अभ्यास और चलाने के लिए तैयार कोड।
\nयह माना जाता है कि आपके पास पहले से Node.js (संस्करण 18+) और npm इंस्टॉल है। यदि नहीं, तो उन्हें आधिकारिक वेबसाइट से डाउनलोड करें।
1. प्रोजेक्ट तैयार करना और डिपेंडेंसी इंस्टॉल करना
\nएक नए TypeScript प्रोजेक्ट की शुरुआत करते हैं। टर्मिनल खोलें और निम्नलिखित कमांड चलाएँ:
\nmkdir my-todo-api\ncd my-todo-api\nnpm init -y\nअब आवश्यक पैकेज इंस्टॉल करें:
\nnpm install express\nnpm install -D typescript @types/node @types/express ts-node nodemon\nTypeScript कॉन्फ़िगरेशन फ़ाइल बनाएँ:
\nnpx tsc --init\nफ़ाइल tsconfig.json में सुनिश्चित करें कि निम्नलिखित पंक्तियाँ अनकमेंटेड और कॉन्फ़िगर की गई हैं:
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "outDir": "./dist",\n "rootDir": "./src",\n "strict": true,\n "esModuleInterop": true,\n "skipLibCheck": true,\n "forceConsistentCasingInFileNames": true\n },\n "include": ["src/**/*"],\n "exclude": ["node_modules", "dist"]\n}\nफ़ोल्डर src और फ़ाइल src/index.ts बनाएँ - यह हमारे एप्लिकेशन का प्रवेश बिंदु होगा।
सुविधाजनक रनिंग के लिए package.json में स्क्रिप्ट जोड़ें:
"scripts": {\n "dev": "nodemon --exec ts-node src/index.ts",\n "build": "tsc",\n "start": "node dist/index.js"\n}\n\n2. बेसिक Express सर्वर बनाना
\nअब Express पर एक न्यूनतम सर्वर लिखेंगे जो पोर्ट 3000 पर सुनेगा। src/index.ts खोलें और निम्नलिखित कोड जोड़ें:
import express, { Request, Response } from 'express';\n\nconst app = express();\nconst PORT = 3000;\n\n// JSON पार्स करने के लिए Middleware\napp.use(express.json());\n\n// जाँच के लिए बेसिक रूट\napp.get('/', (req: Request, res: Response) => {\n res.send('Todo API काम कर रहा है!');\n});\n\napp.listen(PORT, () => {\n console.log(`सर्वर http://localhost:${PORT} पर चालू है`);\n});\nसर्वर को npm run dev कमांड से चलाएँ और ब्राउज़र में http://localhost:3000 खोलें। आपको "Todo API काम कर रहा है!" संदेश दिखना चाहिए।
3. डेटा मॉडल और in-memory स्टोरेज को परिभाषित करना
\nसरलता के लिए, हम तुरंत डेटाबेस कनेक्ट नहीं करेंगे, बल्कि रैम में अस्थायी स्टोरेज का उपयोग करेंगे। फ़ाइल src/models/todo.ts बनाएँ:
export interface Todo {\n id: number;\n title: string;\n completed: boolean;\n createdAt: Date;\n}\n\nexport let todos: Todo[] = [\n { id: 1, title: 'TypeScript सीखें', completed: false, createdAt: new Date() },\n { id: 2, title: 'REST API लिखें', completed: false, createdAt: new Date() },\n];\nTodo इंटरफ़ेस के उपयोग पर ध्यान दें - यह सुनिश्चित करता है कि ऐरे में सभी ऑब्जेक्ट्स की संरचना समान हो।
4. CRUD रूट्स का कार्यान्वयन
\nCreate, Read, Update और Delete ऑपरेशन के लिए पूर्ण रूट्स के साथ फ़ाइल src/routes/todos.ts बनाएँ।
import { Router, Request, Response } from 'express';\nimport { Todo, todos } from '../models/todo';\n\nconst router = Router();\n\n// GET /api/todos — सभी कार्य प्राप्त करें\nrouter.get('/', (req: Request, res: Response) => {\n res.