आप Node के http मॉड्यूल से एक वेब सर्वर बनाते हैं, अनुरोधों का उत्तर देते हैं, और JSON लौटाते हैं।
इस पाठ को Kodokon में खोलेंएक वेब सर्वर एक ऐसा प्रोग्राम है जो लगातार चलता रहता है और अनुरोधों की प्रतीक्षा करता है: किसी क्लाइंट (एक ब्राउज़र, एक मोबाइल ऐप, वगैरह) द्वारा भेजी गई माँगें। हर अनुरोध के लिए, यह एक प्रतिक्रिया लौटाता है। यह संवाद HTTP प्रोटोकॉल का पालन करता है, वेब की साझा भाषा। Node एक उपयोग के लिए तैयार http मॉड्यूल शामिल करता है: कुछ भी इंस्टॉल करने की ज़रूरत नहीं। एक आख़िरी धारणा: पोर्ट, एक संख्या जो किसी मशीन पर एक विशिष्ट प्रोग्राम की पहचान करती है, जैसे किसी इमारत में अपार्टमेंट का नंबर। हम पोर्ट 3000 उपयोग करेंगे; जहाँ तक localhost की बात है, यह बस आपकी अपनी मशीन को दर्शाता है।
import http from "node:http";
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain");
res.end("Hello from my server!");
});
server.listen(3000, () => {
console.log("Server at http://localhost:3000");
});आइए इसे तोड़कर समझें। http.createServer एक ऐसा फ़ंक्शन प्राप्त करता है जिसे हर अनुरोध पर कॉल किया जाता है, दो पैरामीटर के साथ: req (आने वाला अनुरोध) और res (बनाई जा रही प्रतिक्रिया)। res.statusCode = 200 स्टेटस कोड सेट करता है - 200 का अर्थ है "सब ठीक है"। res.setHeader एक हेडर जोड़ता है, प्रतिक्रिया के बारे में मेटाडेटा का एक टुकड़ा: यहाँ इसका प्रारूप, सादा टेक्स्ट। res.end प्रतिक्रिया भेजता है और उसे बंद कर देता है। अंत में, server.listen(3000) सर्वर को पोर्ट 3000 पर सुनने के लिए लगा देता है। अपने ब्राउज़र में http://localhost:3000 खोलें: आपका टेक्स्ट दिखाई देता है। ध्यान दें कि प्रोग्राम नियंत्रण वापस नहीं देता: यह अनुरोधों की प्रतीक्षा करता है। इसे Ctrl+C से रोकें।
आधुनिक सर्वर शायद ही कभी सादा टेक्स्ट लौटाते हैं: वे API प्रकट करते हैं जो JSON में उत्तर देते हैं, वह टेक्स्ट प्रारूप जिसे आप पहले से जानते हैं, हर भाषा द्वारा समझा जाने वाला। दो समायोजन: Content-Type हेडर application/json बन जाता है, और JavaScript ऑब्जेक्ट को JSON.stringify से टेक्स्ट में बदल दिया जाता है। आइए इस मौके का फ़ायदा उठाकर req.url, यानी क्लाइंट द्वारा अनुरोधित पथ, के आधार पर अलग-अलग प्रतिक्रिया दें: यही रूटिंग का आधार है।
import http from "node:http";
const server = http.createServer((req, res) => {
res.setHeader("Content-Type", "application/json");
if (req.url === "/api/message") {
const body = { message: "Hello!", ok: true };
res.statusCode = 200;
res.end(JSON.stringify(body));
return;
}
res.statusCode = 404;
res.end(JSON.stringify({ error: "Not found" }));
});
server.listen(3000, () => {
console.log("http://localhost:3000/api/message");
});404 स्टेटस कोड का अर्थ है "नहीं मिला": अनुरोधित पथ किसी ज्ञात रूट से मेल नहीं खाता। पहली प्रतिक्रिया के बाद return पर ध्यान दें: यह कोड को आगे बढ़ने और दूसरी प्रतिक्रिया भेजने से रोकता है, जो एक त्रुटि का कारण बनेगी। परीक्षण करने के लिए, ब्राउज़र में पता खोलें, या curl का उपयोग करें, एक कमांड-लाइन टूल जो HTTP अनुरोध भेजता है और टर्मिनल में प्रतिक्रिया दिखाता है।
curl http://localhost:3000/api/message