Express इंस्टॉल करें और अपने पहले सर्वर को रूट, URL पैरामीटर और मिडलवेयर के साथ संरचित करें।
इस पाठ को Kodokon में खोलेंआप पहले से जानते हैं कि नेटिव http मॉड्यूल से सर्वर कैसे शुरू किया जाता है: वहाँ सब कुछ मैन्युअल होता है, URL पढ़ने से लेकर हेडर जोड़ने तक। Express वह फ्रेमवर्क है जिसने Node की ओर वेब डेवलपमेंट को मानकीकृत किया: रूटिंग, मिडलवेयर, एक संक्षिप्त API, और प्रोटोकॉल के बारे में कुछ भी छुपाए बिना। एक प्रोजेक्ट बनाएँ और इसे इंस्टॉल करें।
mkdir kodokon-api
cd kodokon-api
npm init -y
npm install expressअपने package.json में type प्रॉपर्टी को module वैल्यू के साथ जोड़ें: पूरा प्रोजेक्ट ES मॉड्यूल का उपयोग करेगा। फिर server.js बनाएँ। एक कार्यशील सर्वर के लिए कुछ लाइनें ही पर्याप्त हैं: आप एप्लिकेशन बनाते हैं, एक रूट घोषित करते हैं, और एक पोर्ट पर सुनते हैं।
import express from "express";
const app = express();
app.get("/", (req, res) => {
res.send("Kodokon API online");
});
app.listen(3000, () => {
console.log("http://localhost:3000");
});एक रूट किसी HTTP मेथड और एक पथ को एक फ़ंक्शन से जोड़ता है। डायनामिक सेगमेंट कोलन के साथ घोषित किए जाते हैं: /users/:id में, वैल्यू req.params.id में उपलब्ध होती है। क्वेरी पैरामीटर (?q=node) req.query में दिखाई देते हैं। यह अंतर ध्यान में रखें: पथ संसाधन की पहचान करता है, क्वेरी स्ट्रिंग रिक्वेस्ट को परिष्कृत करती है।
app.get("/users/:id", (req, res) => {
const { id } = req.params;
res.json({ id, name: "User " + id });
});
app.get("/search", (req, res) => {
const { q } = req.query;
res.json({ query: q ?? "" });
});एक मिडलवेयर एक ऐसा फ़ंक्शन है जो रिक्वेस्ट के आगमन और आपके रूट के बीच चलता है। इसका सिग्नेचर: (req, res, next)। यह req को समृद्ध कर सकता है, सीधे प्रतिक्रिया दे सकता है, या next() से आगे सौंप सकता है। मूल रूप से Express बस मिडलवेयर की एक श्रृंखला है: लॉगिंग, प्रमाणीकरण, बॉडी पार्सिंग। यह मिडलवेयर हर रिक्वेस्ट को उसकी अवधि के साथ लॉग करता है:
app.use((req, res, next) => {
const start = Date.now();
res.on("finish", () => {
const ms = Date.now() - start;
console.log(`${req.method} ${req.url} ${ms}ms`);
});
next();
});/users/:id पथ के साथ घोषित किया गया है। आप id की वैल्यू कहाँ पढ़ते हैं?req.query.id मेंreq.params.id मेंreq.body.id मेंnext() को कॉल करने से क्या होता है?import सिंटैक्स का उपयोग करने के लिए आपको package.json में क्या जोड़ना होगा?type प्रॉपर्टी को module पर सेट किया गयाesm प्रॉपर्टी को true पर सेट किया गया