ServBay में LoopBack प्रोजेक्ट को कॉन्फ़िगर और चलाना
LoopBack क्या है?
LoopBack IBM द्वारा विकसित एक उच्च रूप से स्केलेबल, ओपन-सोर्स Node.js फ्रेमवर्क है, जिसे तेजी से API और माइक्रो-सर्विसेस बनाने के लिए डिज़ाइन किया गया है। यह मॉडल-ड्रिवन डेवलपमेंट (MDD) का उपयोग करता है, जिससे डेवलपर्स डेटा मॉडल को कुशलतापूर्वक परिभाषित कर सकते हैं, और शक्तिशाली RESTful API अपने-आप जेनरेट हो जाती हैं। LoopBack में प्रमुख रूप से डेटा सोर्स कनेक्शन, यूज़र ऑथेंटिकेशन और अथॉराइज़ेशन, API एक्सप्लोरर इत्यादि जैसी बेहद जरूरी सुविधाएँ इनबिल्ट होती हैं—साथ ही यह कई डेटाबेस और प्रोटोकॉल्स को सपोर्ट करता है।
LoopBack की प्रमुख खासियतें और लाभ
- मॉडल-ड्रिवन डेवलपमेंट (MDD): डेटा मॉडल को सहजता से परिभाषित करें, और फ्रेमवर्क स्वतः संबंधित API एंडपॉइंट्स व वैलिडेशन लॉजिक जेनरेट करता है।
- मल्टीपल डेटा-सोर्स सपोर्ट: MongoDB, MySQL, PostgreSQL, MariaDB आदि जैसे लोकप्रिय डेटाबेस के साथ-साथ RESTful, SOAP जैसी सेवाओं से भी आसानी से कनेक्ट करें।
- पावरफुल CLI टूल्स: LoopBack CLI (कमांड लाइन इंटरफेस) कई ऑटोमैटेड कमांड्स देता है, जिससे प्रोजेक्ट सेटअप, मॉडल डिफिनिशन और डेटा-सोर्स कॉन्फ़िगरेशन त्वरित व आसान हो जाता है।
- मॉड्यूलर व एक्स्टेंडेबल: इसकी संरचना इतनी लचीली है कि इसमें थर्ड-पार्टी लाइब्रेरी या सेवा आसानी से एकीकृत की जा सकती है, जिससे आपकी कस्टम बिज़नेस ज़रूरतें पूरी होती हैं।
- इनबिल्ट सुरक्षा फीचर्स: Authentication (पहचान सत्यापन) और Authorization (अनुमति) मैकेनिज्म डिफ़ॉल्ट रूप से मिलता है, जिससे तेज़ी से सुरक्षित API बनाने में मदद मिलती है।
LoopBack के साथ, डेवलपर्स वेब एप्लिकेशन के बैकएंड व API अत्यंत उच्च गुणवत्ता व आसान रखरखाव के साथ बना सकते हैं।
ServBay में LoopBack प्रोजेक्ट सेटअप और रन करें
यह गाइड आपको ServBay के Node.js पर्यावरण में एक LoopBack प्रोजेक्ट बनाने और चलाने की प्रक्रिया से परिचित कराएगा। हम ServBay की 'वेबसाइट' फीचर का उपयोग स्थानीय वेब सर्वर सेटअप और रिवर्स प्रॉक्सी के जरिए बाहरी अनुरोधों को LoopBack के पोर्ट पर फॉरवर्ड करना सीखेंगे—जिससे स्थानीय डेवलपमेंट और डिबगिंग में आसानी होगी।
LoopBack प्रोजेक्ट बनाना
LoopBack CLI इंस्टॉल करें
शुरू करने से पहले सुनिश्चित करें कि आपने ServBay में Node.js पैकेज इंस्टॉल और एक्टिवेट किया है। इसके बाद टर्मिनल खोलें और npm के जरिए LoopBack CLI को ग्लोबली इंस्टॉल करें:
bashnpm install -g @loopback/cli
1प्रोजेक्ट इनिशियलाइज़ करें
ServBay द्वारा सुझाए गए वेबसाइट रूट फ़ोल्डर
/Applications/ServBay/www
में जाएं, और वहां LoopBack CLI से नया प्रोजेक्ट बनाएं। प्रोजेक्ट के लिए लोअर-केस और हायफ़न वाले नाम (जैसेservbay-loopback-app
) का सुझाव है:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2CLI आपको प्रोजेक्ट सेटअप (जैसे REST API, सीरियलाइज़ेशन, ऑथेंटिकेशन आदि) व संरचना चुनने के लिए गाइड करेगा। जरूरत अनुसार विकल्प चुनें।
प्रोजेक्ट डिपेंडेंसीज़ इंस्टॉल करें
बनाए गए प्रोजेक्ट फ़ोल्डर में जाएं और Node.js डिपेंडेंसी इंस्टॉल करें:
bashcd servbay-loopback-app npm install
1
2
LoopBack प्रोजेक्ट का आउटपुट बदलें (वैकल्पिक)
ServBay से अपनी एप्लिकेशन के इंटरफेस को दिखाने के लिये, हम डिफ़ॉल्ट /ping
API को मॉडिफाई कर सकते हैं ताकि वह 'Hello ServBay!' रिटर्न करे।
src/controllers/ping.controller.ts
मॉडिफाई करेंप्रोजेक्ट में
src/controllers/ping.controller.ts
फाइल खोलें और इसमें नीचे जैसा बदलाव करें, ताकि/ping
एंडपॉइंट "Hello ServBay!" स्ट्रिंग रिटर्न करे:typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // रिटर्न वैल्यू को "Hello ServBay!" में बदलें return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
डेवलपमेंट मोड में प्रोजेक्ट चलाएं
डेवलपमेंट के दौरान आप LoopBack का बिल्ट-इन सर्वर रन करेंगे, जिससे तेज़ी से बदलाव व डिबगिंग संभव होती है। हम ServBay रिवर्स प्रॉक्सी के जरिए इस डेव-सर्वर को एक्सेस करेंगे।
डेवलपमेंट सर्वर रन करें
प्रोजेक्ट के रूट में टर्मिनल खोलें और LoopBack एप्लिकेशन स्टार्ट करें। आमतौर पर यह किसी निश्चित पोर्ट पर चलता है। उदाहरणार्थ,
PORT
एंवायरनमेंट वेरिएबल को8585
सेट करें:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2स्टार्ट होने के बाद आपको टर्मिनल में "Server is running at http://[::1]:8585" जैसी लाइन दिखेगी।
ServBay वेबसाइट (रिवर्स प्रॉक्सी) कॉन्फ़िगर करें
ServBay कंट्रोल पैनल में जाएं और 'वेबसाइट' सेक्शन चुनें। ऐड बटन पर क्लिक करके नया रिवर्स प्रॉक्सी साइट बनाएं, जिससे बाहरी डोमेन/पोर्ट के अनुरोध आपके LoopBack एप्लिकेशन के पोर्ट तक पहुंचें:
- नाम (Name): जैसे
My first LoopBack dev site
(ServBay में पहचान के लिए) - डोमेन (Domain): जैसे
servbay-loopback-dev.servbay.demo
(ब्राउज़र में ऐक्सेस के लिए) - वेबसाइट प्रकार (Type):
रिवर्स प्रॉक्सी (Reverse Proxy)
चुनें - IP (IP Address):
127.0.0.1
दर्ज करें (LoopBack लोकल मशीन पर चलता है) - पोर्ट (Port):
8585
दर्ज करें (LoopBack एप्लिकेशन का पोर्ट)
सेटिंग्स सेव करें और बदलाव लागू करें। ServBay अपने-आप लोकल DNS (
/etc/hosts
या ServBay Helper Tool के जरिए) और वेब सर्वर (Caddy/Nginx) सेटअप करेगा ताकि आप अपने कॉन्फ़िगर्ड डोमेन पर एप्लिकेशन देख सकें।ServBay में रिवर्स प्रॉक्सी वेबसाइट ऐड करने के लिए देखें: Node.js डेव वेबसाइट जोड़ें।
- नाम (Name): जैसे
डेवलपमेंट एप्लिकेशन एक्सेस करें
वेब ब्राउज़र खोलें और अपने डोमेन व API रूट (जैसे
https://servbay-loopback-dev.servbay.demo/ping
) पर जाएं।ServBay डिफ़ॉल्ट रूप से आपके लोकल साइट्स के लिए SSL सर्टिफिकेट जेनरेट करता है (ServBay User CA या Public CA के जरिए)—इसलिए आप HTTPS से सिक्योर रिप्रॉडक्शन के साथ डेवलपमेंट टेस्टिंग भी कर सकते हैं, जिससे SSL से संबंधित संभावित समस्याएँ पहले ही पकड़ सकते हैं। इससे संबंधित जानकारी के लिए देखें: SSL के साथ वेबसाइट सुरक्षित करें।
प्रोडक्शन वर्शन डिप्लॉय करें (वैकल्पिक)
जब आपका LoopBack प्रोजेक्ट तैयार हो जाए, तो आप उसे प्रोडक्शन मोड में चला सकते हैं, जिससे प्रदर्शन व सुरक्षा बेहतर होगी और कम डिबग डेटा दिखाई देगा।
प्रोडक्शन सर्वर चलाएँ
प्रोजेक्ट रूट में टर्मिनल खोलें और नीचे दिए गए कमांड के साथ एप्लिकेशन को प्रोडक्शन मोड में चलाएं। जैसे, पोर्ट
8586
औरNODE_ENV=production
सेट करें:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2ServBay में वेबसाइट (रिवर्स प्रॉक्सी) कॉन्फ़िगर करें
ServBay कंट्रोल पैनल वापिस जाकर 'वेबसाइट' सेक्शन में नया या मौजूदा रिवर्स प्रॉक्सी साइट बनाएं या एडिट करें—जो प्रोडक्शन-पोर्ट को पॉइंट करे:
- नाम (Name): जैसे
My first LoopBack production site
- डोमेन (Domain): जैसे
servbay-loopback-prod.servbay.demo
- वेबसाइट प्रकार (Type):
रिवर्स प्रॉक्सी (Reverse Proxy)
चुनें - IP (IP Address):
127.0.0.1
- पोर्ट (Port):
8586
सेव करें और बदलाव लागू करें।
- नाम (Name): जैसे
प्रोडक्शन एप्लिकेशन एक्सेस करें
अपने ब्राउज़र में प्रोडक्शन डोमेन (जैसे,
https://servbay-loopback-prod.servbay.demo/ping
) खोलें और एप्लिकेशन के प्रोडक्शन रन की पुष्टि करें। ServBay यहां भी HTTPS सपोर्ट देगा।
डेटाबेस कनेक्ट करें
LoopBack विभिन्न डेटा-सोर्स कनेक्टर के माध्यम से मल्टीपल डेटाबेसों को सपोर्ट करता है। ServBay MySQL, MariaDB, PostgreSQL, MongoDB व Redis जैसे कई डेटाबेस पैकेज देता है—जिन्हें आप अपने LoopBack प्रोजेक्ट से आसानी से कनेक्ट कर सकते हैं।
यहाँ ServBay के आम डेटाबेसों के कनेक्शन का उदाहरण दिया गया है। अपनी ज़रूरत के अनुसार इन्हें एडिट/अपनाएँ।
महत्वपूर्ण: इन उदाहरणों में दिए गए डेटाबेस यूज़रनेम व पासवर्ड डमी हैं। असल में, ServBay एडमिन पैनल में सेट किया गया सही यूज़र व पासवर्ड इस्तेमाल करें।
MongoDB कनेक्ट करें
पहले, सुनिश्चित करें कि आपने ServBay में MongoDB इंस्टॉल कर स्टार्ट किया है। अब LoopBack MongoDB कनेक्टर इंस्टॉल करें:
bashnpm install --save @loopback/connector-mongodb
1इसके बाद प्रोजेक्ट में डेटा-सोर्स सेट करें (आमतौर पर
src/datasources/mongodb.datasource.ts
आदि):typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // ServBay MongoDB डिफ़ॉल्ट रूप से localhost:27017 पर चलता है url: 'mongodb://localhost:27017/servbay-loopback-app', // यहाँ अपनी DB का नाम बदलें host: 'localhost', port: 27017, user: '', // अगर यूज़र-प्रमाणीकरण है तो यूज़रनेम डालें password: '', // पासवर्ड डालें अगर लागू हो तो database: 'servbay-loopback-app', // अपनी DB का नाम बदलें // अन्य वैकल्पिक सेटिंग... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Redis कनेक्ट करें
पहले, सुनिश्चित करें कि आपने ServBay में Redis पैकेज इंस्टॉल और स्टार्ट किया है। LoopBack के लिए Redis कनेक्टर इंस्टॉल करें (ध्यान दें: LoopBack 4 में आधिकारिक
@loopback/connector-redis
नहीं है, आमतौर परloopback-connector-redis
या Node.js काredis
लाइब्रेरी प्रयोग होता है):bashnpm install --save loopback-connector-redis # या अन्य अनुकूल लाइब्रेरी
1फिर डेटा-सोर्स कॉन्फ़िगर करें (यहाँ
loopback-connector-redis
का स्टाइल है):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // ServBay Redis का डिफ़ॉल्ट पोर्ट localhost:6379 है url: 'redis://localhost:6379', // अन्य वैकल्पिक सेटिंग... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17नोट: LoopBack 4 में डेटा-सोर्स की हैंडलिंग LoopBack 3 से कुछ अलग है। ऊपर दिया गया उदाहरण LoopBack 3 स्टाइल को दर्शाता है; LoopBack 4 में
@loopback/repository
के@datasource
डेकोरेटर आदि का अर्थ अधिक उन्नत तरीके से प्रयोग करें। फिर भी, कनेक्शन पैरामीटरhost
,port
,user
,password
,database
आदि समान रहते हैं।MariaDB या MySQL कनेक्ट करें
पहले, सुनिश्चित करें कि ServBay में MariaDB या MySQL इंस्टॉल और चालू हो। ServBay दोनों को सपोर्ट करता है। LoopBack के लिए MySQL कनेक्टर इंस्टॉल करें:
bashnpm install --save @loopback/connector-mysql
1फिर डेटा-सोर्स कॉन्फ़िगर करें:
typescript// src/datasources/mariadb.datasource.ts या mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // या 'mysql' connector: 'mysql', // MySQL कनेक्टर का प्रयोग // url: '', // url स्टाइल या होस्ट, पोर्ट, डाटाबेस अलग से भी दे सकते हैं host: 'localhost', // ServBay DB डिफ़ॉल्ट लोकलहोस्ट port: 3306, // MariaDB/MySQL डिफ़ॉल्ट पोर्ट user: 'root', // ज्यादातर मामलों में root password: 'password', // << यहाँ असली DB पासवर्ड डालें >> database: 'servbay_loopback_app', // अपने DB का नाम बदलें // अन्य वैकल्पिक सेटिंग... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // या 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21ध्यान दें:
password: 'password'
एक डमी है—ServBay के डेटाबेस मैनेजमेंट में असली पासवर्ड देखें और उसे भरें।PostgreSQL कनेक्ट करें
पहले, सुनिश्चित करें कि ServBay में PostgreSQL इंस्टॉल व शुरू है। LoopBack के लिए PostgreSQL कनेक्टर इंस्टॉल करें:
bashnpm install --save @loopback/connector-postgresql
1फिर डेटा-सोर्स सेट करें:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // url स्टाइल या host, port, db के साथ भी काम करेगा host: 'localhost', // ServBay के लिए लोकलहोस्ट port: 5432, // PostgreSQL डिफ़ॉल्ट पोर्ट user: 'user', // << ServBay DB यूज़रनेम डालें >> password: 'password', // << ServBay में सेट असली पासवर्ड डालें >> database: 'servbay_loopback_app', // अपना DB नाम डालें // अन्य वैकल्पिक सेटिंग... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21ध्यान दें:
user: 'user'
औरpassword: 'password'
placeholders हैं। कृपया ServBay डेटाबेस पैनल में से सही यूज़र/पासवर्ड कापी करें।
निष्कर्ष
इन सभी स्टेप्स के साथ, आपने ServBay लोकल डेवलपमेंट एनवायरनमेंट में एक LoopBack Node.js प्रोजेक्ट सफलतापूर्वक बनाया, कॉन्फ़िगर किया और चलाया। आपने सीखा कि ServBay की 'वेबसाइट' रिवर्स प्रॉक्सी सुविधा की मदद से एप्लिकेशन को लोकली कैसे एक्सेस करें, और LoopBack प्रोजेक्ट से विभिन्न डेटाबेस कनेक्शन कैसे सेट अप करें।
ServBay जैसी ऑल-इन-वन सेवा Node.js फ्रेमवर्क—जैसे LoopBack—के लिए तीव्र, स्थिर और उपयोगकर्ता-हितैषी लोकल डेवेलपमेंट प्लेटफार्म प्रदान करती है, जिसमें वेब सर्वर, डेटाबेस, मल्टीपल लैंग्वेज रनटाइम का सहज समावेश है। वेबसाइट मैनेजमेंट, SSL सपोर्ट और डेटाबेस इंटीग्रेशन के साथ, आप अपनी स्थानीय डेवेलपमेंट व टेस्टिंग प्रक्रिया को अधिक कुशल, सुरक्षित और स्मार्ट बना सकते हैं।