Ubuntu 16.04 LTS पर Express.js का उपयोग करके एक Node.js Restful API कैसे बनाएं

इस ट्यूटोरियल में, आप सीखेंगे कि एक पूर्ण RESTful API कैसे सेट किया जाए, जो कि Node.js और Express का उपयोग करते हुए HTTP अनुरोधों की सेवा करेगा, जबकि इसे NGINX के साथ उल्टा कर, Ubuntu 16.04 LTS पर। हम पोस्टमैन नामक एक एप्लिकेशन का उपयोग करेंगे, हमारे एपीआई का परीक्षण करने और यह सुनिश्चित करने के लिए कि यह पूरी तरह कार्यात्मक है और ठीक से काम कर रहा है, एक बहुत प्रसिद्ध एपीआई विकास उपकरण है। Node.js क्रोम के V8 इंजन पर आधारित एक तेज़, क्रॉस-प्लेटफ़ॉर्म जावास्क्रिप्ट फ्रेमवर्क है। यह डेस्कटॉप और सर्वर अनुप्रयोगों दोनों में उपयोग किया जाता है और अपने सिंगल-थ्रेडेड इवेंट लूप हैंडलिंग के लिए प्रसिद्ध है। हम अपने RESTful API के लिए बैकएंड के रूप में Node.js का उपयोग कर रहे होंगे, Express.js के साथ बंडल किया जाएगा, जो हमारे वेब एप्लीकेशन फ्रेमवर्क Node.js के लिए बनाया गया है। Express.js को मुफ्त और खुले सॉफ्टवेयर के रूप में जारी किया गया है। एक्सप्रेस सर्वर-साइड है, जिसे जावास्क्रिप्ट में लिखा गया है, और इसे एपीआई के निर्माण के लिए डिज़ाइन किया गया है, जो इसे हमारी परियोजना के लिए एकदम सही बनाता है। दूसरी ओर, डाकिया एक बहुत शक्तिशाली HTTP क्लाइंट है, जिसमें एपीआई विकास को ध्यान में रखा गया है। यह उन सभी उपकरणों की सुविधा देता है जो आप संभवतः एपीआई विकास के लिए चाहते हैं।

पोस्टमैन को स्थापित करना

सबसे पहले, आप पोस्टमैन की वेबसाइट पर जाना चाहते हैं , और अपने मुख्य पीसी (आपके सर्वर नहीं) के लिए पोस्टमैन को डाउनलोड और इंस्टॉल करें। सभी इंस्टॉलेशन निर्देश उनकी वेबसाइट पर होंगे।

Node.js स्थापित करना

शुरू करने के लिए, हमें पहले Node.js को स्थापित करना होगा ताकि हम अपना एपीआई विकसित करना शुरू कर सकें। हम आधिकारिक वेबसाइट से Node.js डाउनलोड और इंस्टॉल करेंगे।

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
 sudo apt-get install -y nodejs

इसके अलावा, आप आवश्यक बिल्ड टूल्स को भी हथियाना चाहेंगे, जो मॉड्यूल को संकलित करने में सहायक होगा।

sudo apt-get install build-essential

इस ट्यूटोरियल के लिए, हम Node.js के LTS संस्करण का उपयोग करेंगे, जो कि 8.9.3 संस्करण है।

हमारी Node.js परियोजना की शुरुआत

हमें एक नया Node.js प्रोजेक्ट शुरू करना होगा, जिसमें एक एप्लिकेशन होगा। ऐसा करने के लिए, एक नई निर्देशिका बनाएं।

 mkdir expressapi 

नई निर्देशिका में बदलें। एक बार अंदर, चलाने npm initऔर सभी आवश्यक संकेतों को पूरा करें। अपने आवेदन के "प्रवेश बिंदु" पर ध्यान दें: आप बाद में इस फ़ाइल को बना रहे होंगे। एक बार जब आप समाप्त कर लेंगे, तो आप package.jsonअपनी वर्तमान निर्देशिका में एक फ़ाइल देखेंगे । यह हमारी परियोजना के विवरण के रूप में कार्य करता है, और कार्य करने के लिए आवश्यक सभी निर्भरता को सूचीबद्ध करता है।

Express.js की स्थापना

अब हम Express.js को कॉन्फ़िगर करेंगे और यह निर्भरताएं हैं।

npm install express

स्थापना की प्रक्रिया शुरू हो जाएगी। सब कुछ डाउनलोड होने में कुछ मिनट लगेंगे।

हमारी मुख्य फाइल शुरू

अगला, हम अपने एपीआई के लिए अपनी मुख्य शुरुआती फ़ाइल बनाएंगे। यहां वह जगह है जहां आप "प्रविष्टि बिंदु" का उपयोग करेंगे जिसे आपने package.jsonफ़ाइल में देखा था । इस ट्यूटोरियल के लिए, मैं, डिफ़ॉल्ट योजना के नामकरण का उपयोग करेगा index.js

touch index.js

फिर, इसे नैनो टेक्स्ट एडिटर में खोलें।

nano index.js

हमारी मुख्य फ़ाइल में, हम पहले अपने सभी मुख्य पैकेजों को कॉल करना चाहते हैं और हमारे मार्गों को पंजीकृत करना चाहते हैं।

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

मूल रूप से हम जो यहां कर रहे हैं वह हमारे ऐप को आरंभ कर रहा है, और हमारे एपीआई के लिए एक मूल राउटर स्थापित कर रहा है। ध्यान दें कि हमने अपने एप्लिकेशन का पोर्ट सेट कर दिया है 8080। जब हम अपने RESTful API को कॉन्फ़िगर करते हैं तो हमें इस नंबर की आवश्यकता होगी। अब हम आगे बढ़ने और अपने एपीआई का परीक्षण करने के लिए तैयार हैं।

पोस्टमैन के साथ हमारे एपीआई का परीक्षण

प्रोजेक्ट निर्देशिका में, निम्न चलाएँ।

node <filename>.js

यह एपीआई शुरू करेगा, जहां <filename>फ़ाइल में आपके द्वारा निर्दिष्ट प्रारंभ package.jsonफ़ाइल है। फिर, अपने पीसी / मैक पर पोस्टमैन खोलें, और Newऊपरी दाएं कोने में " " बटन पर क्लिक करें, फिर " Request" पर क्लिक करें । जब वहाँ है, तो आपको एक बार देखना चाहिए जो GETइसके बगल में " " कहता है। यहां हम अपना अनुरोध URL दर्ज करेंगे। बस अनुरोध URL अनुभाग में निम्नलिखित दर्ज करें और " Send" पर क्लिक करें ।

`http://your-server-ip:3000/api` 

आप देखेंगे " 'API is online'"।

एपीआई मार्ग

मार्गों को संभालने के लिए, हम एक्सप्रेस राउटर का उपयोग करेंगे। यदि आपको पता नहीं है कि राउटर क्या है, तो यह अनिवार्य रूप से क्लाइंट अनुरोधों के लिए एप्लिकेशन समापन बिंदुओं का जवाब देता है। यहां वे मार्ग हैं जिन्हें हम एक उदाहरण के रूप में स्थापित करेंगे:

  • /api/numbers - 1-10 से सभी नंबरों को दिखाता है।

  • /api/letters - AZ से सभी पत्र दिखाता है।

अब हम अपना पहला रूट मिडलवेयर स्ट्रक्चर स्थापित करेंगे, जैसे।

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

इस उदाहरण में, हम एक ऐसी स्थिति सेट करते हैं, जहाँ कोई उपयोगकर्ता GET पद्धति का उपयोग करते हुए, उसे शब्द रूप प्रदान करके संख्या + 1 के योग का अनुरोध कर सकता है। हम router.route()फ़ंक्शन का उपयोग करके इंगित करते हैं कि हम किस संख्या में परिणाम के रूप में वापस भेजना चाहते हैं। पैरामीटर को :उनके सामने एक " " नाम दिया गया है। हम इन पैरामीटरों को एक्सेस करते हैं req.params

यहाँ पत्��� के साथ एक उदाहरण है।

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

हम ऊपर की तरह ही विधि का उपयोग करते हैं, लेकिन हम अक्षर को बड़े अक्षरों में लिखते हैं।

एनजीआईएनएक्स का परिचय

एनजीआईएनएक्स वेब सेवारत, रिवर्स प्रॉक्सीज़, स्ट्रीमिंग और अधिक के लिए उपयोग किया जाने वाला एक प्रसिद्ध ओपन-सोर्स सॉफ्टवेयर है। हम एनजीआईएनएक्स का उपयोग हमारे एपीआई को उल्टा करने के लिए करेंगे, ताकि हम इसे पोर्ट पर चलाने की अनुमति दे सकें 80, क्योंकि नोड.जेएस बिना रूट एक्सेस के 1024 से कम पोर्ट पर कनेक्शन की अनुमति नहीं देता है। यह आपके डोमेन को आपके सर्वर से लिंक करते समय काम आ सकता है।

NGINX की स्थापना

NGINX को स्थापित करने के लिए आपको अपने टर्मिनल में निम्नलिखित को चलाने की आवश्यकता होगी, और इंस्टॉलेशन के पूरा होने तक प्रतीक्षा करें।

sudo apt-get install nginx

अगला, हम अपनी साइट फ़ाइल बनाना चाहेंगे जो NGINX हमारे ऐप को प्रॉक्सी करने के लिए उपयोग करेगी।

sudo nano /etc/nginx/sites-available-api.js

फ़ाइल को निम्न के साथ पॉप्युलेट करें, फिर इसे सहेजने के लिए CTRL+ O

server {
          listen 80;
          location / {
                proxy_set_header X-Real-IP 
                $remote_addr;
                proxy_set_header 
                X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_set_header Host 
                $http_host;
                proxy_set_header 
                X-NginX-Proxy true; proxy_pass 
                http://127.0.0.1:8080/;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade 
                $http_upgrade;
                proxy_set_header Connection 
                "upgrade";
                proxy_redirect off;
                proxy_set_header 
               X-Forwarded-Proto $scheme;
       }
}

उसी पोर्ट का उपयोग करते हुए हमने अपना एप्लिकेशन पहले चलाया था, हम 80पोर्ट पर चल रहे हमारे एपीआई के पोर्ट पर हमारे आईपी पते से सभी अनुरोधों को रीडायरेक्ट करने के लिए कह रहे हैं 8080

इसके बाद, sites-availableफ़ोल्डर में हमारी नई बनाई गई फ़ाइल को सिमिलर करके रिवर्स प्रॉक्सी को सक्षम करें :

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

यह सुनिश्चित करेगा कि NGINX प्रॉक्सी को हमारे एपीआई को उलट देगा।

सबसे पहले NGINX के साथ दौड़ें

एक बार जब हमने अपना एनजीआईएनएक्स कॉन्फ़िगरेशन समाप्त कर लिया है, तो हम एनजीआईएनएक्स शुरू करेंगे, फिर अपना एपीआई शुरू करेंगे। सबसे पहले, NGINX को पुनरारंभ करें।

sudo systemctl restart nginx

फिर, अपनी API निर्देशिका में वापस बदलें, और इसे प्रारंभ करें।

node <filename>.js

एप्लिकेशन पोर्ट पर चलेगा 80। बस पोस्टमैन के साथ ऊपर से परीक्षण चलाएं, यह सुनिश्चित करने के लिए कि सब कुछ ठीक से काम कर रहा है।

हमारे एपीआई को चालू रखना

एक उत्पादन वातावरण में, आप यह सुनिश्चित करना चाहते हैं कि आपके नोड अनुप्रयोगों के लिए आपके पास एक प्रक्रिया प्रबंधक है, यह सुनिश्चित करने के लिए कि वे पृष्ठभूमि में हमेशा के लिए चल रहे हैं। इस ट्यूटोरियल में, हम PM2 (प्रोसेस मैनेजर 2) नामक एक प्रक्रिया प्रबंधक का उपयोग करेंगे, जो कि Node.js अनुप्रयोगों के लिए एक प्रक्रिया प्रबंधक है जो उन्हें न्यूनतम डाउनटाइम के साथ हमेशा के लिए जीवित रखेगा। PM2 कई उपयोगी प्रबंधन उपकरण के साथ आता है, जैसे कि रोकना, फिर से लोड करना, रोकना और बहुत कुछ। PM2 को स्थापित करने के लिए, निम्न टाइप करें और इसे स्थापित करने के लिए प्रतीक्षा करें।

sudo npm install pm2 -g

एक बार यह स्थापित हो जाने के बाद, आपको यह करना होगा कि आप प्रोजेक्ट डायरेक्टरी में हैं, निम्न टाइप करें, और एप्लिकेशन शुरू हो जाएगा।

pm2 start <filename>.js

PM2 के साथ हमारे आवेदन का प्रबंधन

जैसा कि पहले उल्लेख किया गया है, पीएम 2 में कुछ उपयोगी उपकरण हैं जिनका उपयोग आप अपने आवेदन को बेहतर ढंग से प्रबंधित करने के लिए कर सकते हैं।

  • pm2 stop- जैसा कि नाम से पता चलता है, इससे आप वर्तमान में चल रहे एप्लिकेशन को रोक सकते हैं और इसकी प्रक्रिया को मार सकते हैं। यदि आपका एप्लिकेशन अप्रत्याशित परिणाम उत्पन्न कर रहा है, तो इसे रोकना आपके काम आएगा।

  • pm2 list- सूची फ़ंक्शन आपको PM2 के माध्यम से वर्तमान में चल रहे सभी अनुप्रयोगों को देखने की अनुमति देता है, उनके नाम से मैप किया गया है। यदि आपको अपने एप्लिकेशन के अपटाइम को जल्दी से जांचने की आवश्यकता है, तो आपको इस उपकरण का उपयोग करना चाहिए।

  • pm2 restart- यदि आपका आवेदन किसी कारण से जमा हो जाता है, और आप इसे फिर से लोड करना चाहते हैं, तो pm2 पुनरारंभ बस यही करता है। यह एक अलग प्रक्रिया के तहत, आवेदन प्रक्रिया को मार देगा और इसे फिर से शुरू करेगा।

  • pm2 monit- PM2 का अंतर्निहित मॉनिटर टूल आपको उपयोगकर्ता के अनुकूल ncurses- शैली के ग्राफ़ में अपने एप्लिकेशन के विशिष्ट विवरणों का एक ग्राफ, जैसे कि CPU / RAM उपयोग, देखने की अनुमति देता है। यह उपयोगी है यदि आप अपने आवेदन के लोड की एक दृश्य तस्वीर चाहते हैं।

अंतिम टिप्पणी

हमने अब NEST.js, एक्सप्रेस का उपयोग करते हुए एक RESTful API बनाने का अपना काम पूरा कर लिया है, और इसे NGINX के साथ उल्टा कर रहे हैं। इस ट्यूटोरियल में विस्तार करने के लिए स्वतंत्र महसूस करें। आप अपने नए एपीआई के साथ कई महान काम कर सकते हैं, जैसे प्रमाणीकरण तरीके, एक डेटाबेस, बेहतर मार्ग और त्रुटि से निपटने, और बहुत कुछ। यदि आपके पास एक डोमेन है, जिसका "ए" रिकॉर्ड पहले से ही आपके आईपी पते पर सेट है, तो आप अपने डोमेन से अपने एपीआई तक पहुंच सकेंगे। यदि आप Express.js के बारे में अधिक जानना चाहते हैं, तो उनकी वेबसाइट http://expressjs.com पर जाएं । NGINX के बारे में और जानने के लिए और समीपवर्ती रिवर्सिंग, http://nginx.com पर जाएँ । PM2 के बारे में अधिक पढ़ने के लिए, http://pm2.keymetrics.io पर उनके पृष्ठ पर जाएँ ।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ