Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)
Node.js में एक Express API सर्वर कैसे सेट करें
पिछले ट्यूटोरियल में, हमने सीखा है कि REST आर्किटेक्चर क्या है, REST की छह गाइडिंग बाधाएं, HTTP रिक्वेस्ट मेथड्स और उनके रिस्पांस कोड को समझने के लिए, और एक विश्वसनीय API एंडपॉइंट की शारीरिक रचना।
इस ट्यूटोरियल में, हम अपने API के रहने के लिए एक सर्वर सेट अप करेंगे। आप किसी भी प्रोग्रामिंग लैंग्वेज और सर्वर सॉफ़्टवेयर के साथ एक API बना सकते हैं, लेकिन हम Node.js का उपयोग करेंगे, जो जावास्क्रिप्ट का बैक-एंड इम्प्लीमेंटेशन है, और Express, Node के लिए एक लोकप्रिय, मिनिमल फ्रेमवर्क है।
इंस्टालेशन
हमारी पहली शर्त यह सुनिश्चित कर रही है कि कंप्यूटर पर ग्लोबल स्तर पर Node.js और npm इनस्टॉल हो। हम -v
फ्लैग का उपयोग करके दोनों का परीक्षण कर सकते हैं, जो वर्जन प्रदर्शित करेगा। अपना कमांड प्रॉम्प्ट खोलें और निम्न टाइप करें।
node -v && npm -v
v10.8.0 6.2.0
आपके वर्जन मेरी तुलना में थोड़ा अलग हो सकता हैं, लेकिन जब तक दोनों यहाँ हैं, हम शुरू कर सकते हैं।
आइए express-api
नामक एक प्रोजेक्ट डायरेक्टरी बनाएं और इसमें चले जाएं।
mkdir express-api && cd express-api
अब जब हम अपनी नई डायरेक्टरी में हैं, हम इन प्रोजेक्ट को init कमांड के साथ प्रारंभ कर सकते हैं।
npm init
यह कमांड आपको प्रोजेक्ट के बारे में कुछ प्रश्नों के उत्तर देने के लिए प्रांप्ट करेगा, जिसे आप भरना या नहीं भरना चुन सकते हैं। एक बार सेटअप पूरा होने के बाद, आपके पास एक package.json फ़ाइल होगी जो इस तरह दिखती है:
{ "name": "express-api", "version": "1.0.0", "description": "Node.js and Express REST API", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Tania Rascia", "license": "MIT" }
अब हमारे पास हमारे package.json हैं, हम अपनी प्रोजेक्ट के लिए आवश्यक डिपेंडेंसी को इनस्टॉल कर सकते हैं। सौभाग्य से हमें बहुत अधिक डिपेंडेंसी की आवश्यकता नहीं है, केवल नीचे सूचीबद्ध इन चार की हमें जरूरत है।
- body-parser: बॉडी पार्सिंग मिडलवेयर।
- express: एक मिनिमल वेब फ्रेमवर्क जिसका हम अपने सर्वर के लिए उपयोग करेंगे।
- mysql: एक MySQL ड्राइवर।
- request (वैकल्पिक): HTTP कॉल करने का एक आसान तरीका।
हम अपने प्रोजेक्ट को सेट करने के लिए प्रत्येक डिपेंडेंसी के बाद install
कमांड का उपयोग करेंगे।
npm install body-parser express mysql request
यह एक package-lock.json फ़ाइल और एक node_modules डायरेक्टरी बनाएगा, और हमारे package.json को इस तरह कुछ दिखने के लिए अपडेट किया जाएगा:
{ "name": "express-api", "version": "1.0.0", "description": "Node.js and Express REST API", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Tania Rascia", "license": "MIT", "dependencies": { "dependencies": { "body-parser": "^1.18.3", "express": "^4.16.3", "mysql": "^2.16.0", "request": "^2.88.0" } }
एक HTTP सर्वर को सेटअप करना
एक Express सर्वर सेटअप करना शुरू करने से पहले, हम एक साधारण सर्वर कैसे काम करता है इसका एक अनुमान प्राप्त करने के लिए, हम Node के बिल्ट-इन http
मॉड्यूल के साथ एक HTTP सर्वर को जल्दी से सेटअप करेंगे।
hello-server.js नामक एक फ़ाइल बनाएं। http
मॉड्यूल में लोड करें, पोर्ट नंबर सेट करें (मैंने 3001
चुना है), और createServer()
मेथड के साथ सर्वर बनाएं।
// Build a server with Node's HTTP module const http = require('http'); const port = 3001; const server = http.createServer();
प्रारंभिक REST आर्टिकल में, हमने चर्चा की कि HTTP सर्वर के संबंध में कौन से रिक्वेस्ट और रिस्पांस हैं। हम रिक्वेस्ट को संभालने के लिए हमारे सर्वर को सेट करने जा रहे हैं और सर्वर साइड पर रिक्वेस्ट किए गए URL को प्रदर्शित करते हैं, और Hello, server! मैसेज को रिस्पांस साइड के क्लाइंट को प्रदर्शित करते हैं।
server**on('request'** (request, response) => { console.log(`URL: ${request.url}`); response.end('Hello, server!') })
अंत में, हम सर्वर को बताएंगे कि कौन सा port पर सुनना है, और एक एरर दिखाएं यदि कोई है तो।
// Start the server server.listen(port, (error) => { if (error) return console.log(`Error: ${error}`); console.log(`Server is listening on port ${port}`) })
अब, हम अपने सर्वर को node
और उसके बाद फाइलनेम लगाकर शुरू कर सकते हैं।
node hello-server.js
आप टर्मिनल में यह रिस्पांस देखेंगे:
Server is listening on port 3001
यह जांचने के लिए कि सर्वर वास्तव में चल रहा है, अपने ब्राउज़र के एड्रेस बार में https://localhost:3001/
पर जाएं। अगर सब ठीक से काम कर रहे हैं, तो आपको Hello, server! पेज पर दिखना चाहिए। आपके टर्मिनल में, आप उन URL को भी देखेंगे जिनसे रिक्वेस्ट किया गया था।
URL: / URL: /favicon.ico
यदि आप http://localhost:3001/hello
पर नेविगेट करते हैं, तो आप देखेंगे URL: /hello
।
हम अपने लोकल सर्वर पर cURL का भी उपयोग कर सकते हैं, जो हमें सटीक हैडर और बॉडी दिखाएगा जो रीटर्न किये जा रहे हैं।
curl -i http://localhost:3001
HTTP/1.1 200 OK Date: Wed, 15 Aug 2018 22:14:23 GMT Connection: keep-alive Content-Length: 14 Hello, server!
यदि आप किसी भी समय टर्मिनल विंडो बंद करते हैं, तो सर्वर चला जायेगा।
अब जब हमारे पास एक आईडिया है कि सर्वर, रिक्वेस्ट, और रिस्पांस सभी एक साथ कैसे काम करते हैं, तो हम इसे Express में रीराइट कर सकते हैं, जिसमें एक सरल इंटरफ़ेस और एक्सटेंडेड फीचर्स भी हैं।
एक Express सर्वर को सेटअप करना
हम एक नई फाइल, app.js बनाने जा रहे हैं, जो हमारे वास्तविक प्रोजेक्ट के लिए एंट्री पॉइंट होगा। ओर्जिनल http सर्वर की तरह ही, हमें एक मॉड्यूल की आवश्यकता होगी और शुरू करने के लिए पोर्ट सेट करें।
एक app.js फ़ाइल बनाएं और इसमें निम्न कोड डालें।
// Require packages and set the port const express = require('express'); const port = 3002; const app = express();
अब, सभी रिक्वेस्ट की तलाश करने के बजाय, हम स्पष्ट रूप से बताएंगे कि हम सर्वर की रूट (/
) पर एक GET
रिक्वेस्ट की तलाश में हैं। जब /
को रिक्वेस्ट प्राप्त होती है, हम रिक्वेस्ट किए गए URL और "Hello, Server!" मैसेज को प्रदर्शित करेंगे।
app.get('/', (request, response) => { console.log(`URL: ${request.url}`); response.send('Hello, Server!'); });
अंत में, हम listen()
मेथड के साथ पोर्ट 3002
पर सर्वर शुरू करेंगे।
// Start the server const server = app.listen(port, (error) => { if (error) return console.log(`Error: ${error}`); console.log(`Server listening on port ${server.address().port}`); });
हम सर्वर को node app.js
के साथ शुरू कर सकते हैं जैसा हमने पहले किया था, लेकिन हम इस विशिष्ट कमांड को स्वचालित रूप से (ऑटोमेटिकली) चलाने के लिए हमारी package.json फ़ाइल में scripts
प्रॉपर्टी को भी संशोधित कर सकते हैं।
"scripts": { "start": "node app.js" },
अब हम सर्वर शुरू करने के लिए npm start
का उपयोग कर सकते हैं, और हम टर्मिनल में अपना सर्वर मैसेज देखेंगे।
Server listening on port 3002
यदि हम URL पर curl -i
चलाते हैं, तो हम देखेंगे कि यह अब Express द्वारा पावर किये जा रहे है, और कुछ अतिरिक्त हैडर जैसे Content-Type
भी इसमें हैं।
curl -i http://localhost:3002
HTTP/1.1 200 OK X-Powered-By: Express Content-Type: text/html; charset=utf-8 Content-Length: 14 ETag: W/"e-gaHDsc0MZK+LfDiTM4ruVL4pUqI" Date: Wed, 15 Aug 2018 22:38:45 GMT Connection: keep-alive Hello, Server!
बॉडी पार्सिंग मिडलवेयर जोड़ें
हमारे API को आसानी से POST
और PUT
रिक्वेस्ट्स से निपटने के लिए, हम बॉडी पार्सिंग मिडलवेयर जोड़ देंगे। यह वह जगह है जहां हमारा body-parser
मॉड्यूल आता हैं। body-parser
आने वाले रिक्वेस्ट के पूरे बॉडी को निकाल देगा और इसे JSON ऑब्जेक्ट में पार्स करेगा जिसके साथ हम काम कर सकते हैं।
हमें बस हमारी फाइल के शीर्ष पर मॉड्यूल की आवश्यकता होगी। अपनी app.js फ़ाइल के शीर्ष पर निम्न require
स्टेटमेंट जोड़ें।
const bodyParser = require('body-parser'); ...
फिर हम अपने Express ऐप को body-parser
का उपयोग करने के लिए बताएंगे, और json को ढूंढेंगे।
// Use Node.js body parsing middleware app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true, }));
साथ ही, प्लेन टेक्स्ट की बजाय रिस्पांस के रूप में JSON ऑब्जेक्ट भेजने के लिए हमारे मैसेज को बदल दें।
response.send({message: 'Node.js and Express REST API'});
यह हमारी पूरी app.json फ़ाइल है क्योंकि यह अभी तक खड़ी है।
// Require packages and set the port const express = require('express'); const port = 3002; const bodyParser = require('body-parser'); const app = express(); // Use Node.js body parsing middleware app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true, })); app.get('/', (request, response) => { response.send({ message: 'Node.js and Express REST API'} ); }); // Start the server const server = app.listen(port, (error) => { if (error) return console.log(`Error: ${error}`); console.log(`Server listening on port ${server.address().port}`); });
यदि आप सर्वर पर curl -i
भेजते हैं, तो आप देखेंगे कि हेडर अब Content-Type: application/json; charset=utf-8
देता है।
रुट्स को सेट करें
अब तक, हमारे पास रूट (/
) के लिए केवल एक GET
रूट है, लेकिन हमारी API कई URL पर सभी चार प्रमुख HTTP रिक्वेस्ट मेथड्स को संभालने में सक्षम होना चाहिए। हम राउटर सेटअप करने जा रहे हैं और कुछ नकली डेटा प्रदर्शित करने जा रहे हैं।
आइए routes नामक एक नई डायरेक्टरी बनाएं, और routes.js नामक एक फ़ाइल बनाएं। हम इसे app.js के शीर्ष पर लिंक करेंगे।
const routes = require('./routes/routes');
ध्यान दें कि require में .js
एक्सटेंशन आवश्यक नहीं है। अब हम अपने ऐप के GET
लिस्टनर (listener) को routes.js पर ले जायेंगे। routes.js में निम्न कोड एंटर करें।
const router = app => { app.get('/', (request, response) => { response.send({ message: 'Node.js and Express REST API' }); }); }
अंत में, router
एक्सपोर्ट करें ताकि हम इसे हमारे app.js फ़ाइल में उपयोग कर सकें।
// Export the router module.exports = router;
app.js में, app.get()
कोड को आपके पास पहले से routes()
पर कॉल के साथ रीप्लेस करें:
routes(app);
अब आप http://localhost:3002
पर जा सकते हैं और पहले जैसी ही बात देख सकते हैं। (सर्वर को रीस्टार्ट करना न भूलें!)
एक बार यह सब ठीक हो जाए और ठीक से काम कर रहा हो, हम किसी अन्य रूट के साथ कुछ JSON डेटा को सर्व करेंगे। हम अभी के लिए नकली डेटा का उपयोग करेंगे, क्योंकि हमारा डेटाबेस अभी तक सेटअप नहीं है।
JSON फॉर्मेट में कुछ नकली यूजर डेटा के साथ, routes.js में users
वेरिएबल बनाते हैं।
const users = [{ id: 1, name: "Richard Hendricks", email: "richard@piedpiper.com", }, { id: 2, name: "Bertram Gilfoyle", email: "gilfoyle@piedpiper.com", }, ];
हम अपने राउटर में एक और GET
मेथड को जोड़ेंगे, /users
, और यूजर डेटा को इससे भेजेंगे।
app.get('/users', (request, response) => { response.send(users); });
सर्वर को रीस्टार्ट करने के बाद, अब आप http://localhost:3002/users
पर नेविगेट कर सकते हैं और हमारे सभी डेटा डिस्प्ले किए जा सकते हैं।
नोट: यदि आपके पास अपने ब्राउज़र पर JSON viewer एक्सटेंशन नहीं है, तो मैं अत्यधिक रेकमेंड करता हूं कि आप इसे डाउनलोड करें, जैसे क्रोम के लिए JSONView। यह डेटा को पढ़ने में बहुत आसान बना देगा!
इस पोस्ट के पूरे कोड देखने के लिए हमारे GitHub रेपो पर जाएं और इसकी अपने वाले से तुलना करें।
निष्कर्ष
इस ट्यूटोरियल में, हमने सीखा कि एक बिल्ट-इन HTTP सर्वर को कैसे सेटअप करें और नोड, रूट रिक्वेस्ट्स और URL में एक Express सर्वर कैसे सेटअप करें और get रिक्वेस्ट के साथ JSON डेटा को कैसे उपयोग करें।
RESTful API सीरीज की अंतिम इन्सटॉलमेंट में, हम अपने API की फंक्शनलिटी को अंतिम रूप देने, डेटाबेस में यूज़र्स को create, view, update और delete करने के लिए हमारे Express सर्वर को MySQL पर हुक करेंगे।
Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post