ServBay के साथ Koa.js प्रोजेक्ट बनाना एवं चलाना
ServBay macOS और Windows के लिए एक स्थानीय वेब विकास वातावरण है जिसमें डेवलपर्स के लिए महत्वपूर्ण सॉफ्टवेयर पैकेज शामिल हैं, जैसे Node.js रनटाइम और विविध डेटाबेस। यह लेख आपको ServBay के अनुकूल वातावरण का उपयोग कर, तेज़ी से Koa.js परियोजनाएं बनाने, चलाने और प्रबंधित करने की प्रक्रिया समझाएगा।
Koa.js क्या है?
Koa.js, Express.js की टीम द्वारा विकसित—a Node.js आधारित अगली पीढ़ी का वेब फ्रेमवर्क है। इसकी सादगी, अभिव्यक्तिपूर्ण शैली और शक्तिशाली फीचर्स के कारण यह वेब एप्लिकेशन और API बनाने के लिए आदर्श विकल्प है। Koa.js आधुनिक JavaScript सुविधाओं—विशेष रूप से async/await—का पूरी तरह से प्रयोग करता है, जिससे असिंक कार्य और मिडलवेयर लिखना आसान, स्पष्ट और रखरखाव में सरल हो जाता है।
Koa.js की मुख्य विशेषताएँ
- async/await आधारित: इसका मूल डिज़ाइन
async/awaitके इर्द-गिर्द है, जिससे असिंक प्रक्रिया नियंत्रण सहज बनती है। - लाइटवेट कोर: मुख्य लाइब्रेरी छोटी, केवल मूलभूत कार्यक्षमता; विस्तार के लिए मॉड्यूलर मिडलवेयर।
- शक्तिशाली मिडलवेयर: कैस्केडिंग मिडलवेयर सिस्टम के साथ; रिक्वेस्ट प्रोसेसिंग फ्लो स्पष्ट और लचीला।
- वेब केंद्रित: केवल वेब ऐप व API विकास के लिए केंद्रित, अतिरिक्त अनावश्यक फीचर्स नहीं देता।
Koa.js से डेवलपर उच्च प्रदर्शन व आसानी से रखरखाव वाली सेवाएँ बना सकते हैं।
ServBay के साथ Koa.js विकास वातावरण सेटअप करना
Node.js डेवलपर्स के लिए ServBay एक तैयार वातावरण देता है—जिसमें Node.js रनटाइम और मुख्य डेटाबेस सेवाएं शामिल हैं। ServBay के Website फीचर के साथ, आप आसानी से कस्टम डोमेन व SSL सर्टिफिकेट द्वारा अपने लोकल Koa.js प्रोजेक्ट एक्सेस कर सकते हैं।
पूर्व-आवश्यकताएँ
शुरू करने से पहले, नीचे दिए गए कार्य पूरे करें:
- ServBay इंस्टाल करें: ServBay की वेबसाइट पर जाएँ और नवीनतम वर्शन डाउनलोड व इंस्टाल करें।
- Node.js पैकेज इंस्टाल करें: ServBay एप खोलें, Packages सेक्शन में जाकर, ज़रूरी Node.js वर्शन इंस्टाल करें। यदि नहीं है, तो चुनें और इंस्टाल करें।
- ServBay से परिचित हों: जानें कि Services कैसे स्टार्ट/स्टॉप करें और Website कैसे प्रबंधित करें।
Koa.js प्रोजेक्ट बनाएं
ServBay डिफ़ॉल्ट वेब रूट डायरेक्टरी /Applications/ServBay/www का प्रयोग करें।
प्रोजेक्ट डायरेक्टरी इनिशियलाइज़ करें
Terminal खोलें, ServBay web root पर जाएं, नया प्रोजेक्ट फोल्डर (जैसे
servbay-koa-app) बनाएं, उसमें जाएं और Node.js प्रोजेक्ट शुरू करें:bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y1
2
3
4npm init -y: एक डिफ़ॉल्टpackage.jsonबनाएगा।Koa.js इंस्टाल करें
प्रोजेक्ट फोल्डर में Koa.js व (अगर TypeScript इस्तेमाल कर रहे हैं तो) टाइप डिफ़िनिशन इंस्टाल करें:
bashnpm install koa # अगर TypeScript उपयोग कर रहे हैं, तो टाइप डिफ़िनिशन इंस्टाल करें # npm install @types/koa --save-dev1
2
3एप्लिकेशन एंट्री फाइल बनाएं
फोल्डर में
app.jsनामक फाइल बनाएं, और Koa.js का बेसिक कोड लिखें:javascriptconst Koa = require('koa'); const app = new Koa(); // मिडलवेयर: अनुरोध जानकारी लॉग करें app.use(async (ctx, next) => { const start = Date.now(); await next(); const ms = Date.now() - start; console.log(`${ctx.method} ${ctx.url} - ${ms}ms`); }); // मिडलवेयर: root path के लिए रिस्पॉन्स दें app.use(async ctx => { ctx.body = 'Hello from ServBay Koa.js App!'; }); // पोर्ट सेट करें, सर्वप्रथम ENV वेरिएबल PORT का उपयोग const port = process.env.PORT || 3000; // HTTP सर्वर प्रारंभ करें app.listen(port, () => { console.log(`Koa.js server running on http://localhost:${port}`); console.log(`Project path: ${__dirname}`); });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24अब दो मिडलवेयर हैं—एक रिक्वेस्ट टाइम व पाथ लॉग करेगा, दूसरा
/पाथ के लिए"Hello from ServBay Koa.js App!"लौटाएगा। एप्लिकेशनPORTENV वेरिएबल या डिफ़ॉल्ट 3000 पर सुनता है।
विकास मोड में जाएं
डेवलपमेंट में, लोकल Node.js प्रोसेस से Koa.js एप चलाते हैं और ServBay की Website सुविधा से एक्सेस करते हैं।
Koa.js डेव सर्वर चलाएं
टर्मिनल में जाएं, प्रोजेक्ट डायरेक्टरी में रहें और
app.jsचलाएं। पोर्ट कंफ्लिक्ट बचाने या ServBay configuration के लिए एक खास पोर्ट (जैसे 8585) चुनें:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js1
2टर्मिनल में ऐसा आउटपुट आएगा—
Koa.js server running on http://localhost:8585—मतलब सर्वर चल पड़ा है। इस विंडो को खुला रखें।ServBay Website रिवर्स प्रॉक्सी सेट करें
कस्टम डोमेन द्वारा Koa.js एप (जो
localhost:8585पर चल रहा है) एक्सेस करने के लिए ServBay Website फीचर में रिवर्स प्रॉक्सी बनाईये:- ServBay एप खोलें।
- Website टैब जाएं।
- बाएँ नीचे
+पर क्लिक करके नया Website जोड़ें। - Website details भरें:
- Name (नाम):
ServBay Koa.js Dev Site - Domain (डोमेन):
servbay-koa-dev.servbay.demo(सुझाव:.servbay.demoएंडिंग से SSL ऑटोमैटिकली मिलेगी) - Type (प्रकार):
Reverse Proxy - IP Address:
127.0.0.1 - Port (पोर्ट):
8585 - Document Root: रिवर्स प्रॉक्सी के लिए जरूरी नहीं, खाली या प्रोजेक्ट पथ डालें।
- Name (नाम):
- Save/Apply करें।
ServBay अपने आप आपके लोकल hosts फाइल को अपडेट करके
servbay-koa-dev.servbay.demoको127.0.0.1से जोड़ेगा, और कनेक्शन को Koa.js पर रिवर्स प्रॉक्सी कर देगा।.servbay.demoडोमेन के जरिये ServBay User CA द्वारा SSL सर्टिफिकेट मिल जाएगा—HTTPS के लिए तैयार!विस्तृत चरणों के लिए ServBay डॉक्यूमेंटेशन के Node.js Development Website जोड़ना देखें (इंग्लिश चुनें)।
Koa.js डेव वेबसाइट एक्सेस करें
ब्राउज़र में
https://servbay-koa-dev.servbay.demoखोलें।अगर सेटअप सही है, तो "Hello from ServBay Koa.js App!" दिखाई देगा। अब जब भी आप
app.jsको एडिट व Node.js प्रोसेस को रीस्टार्ट करें, ब्राउज़र रिफ्रेश करते ही बदलाव दिखेंगे।
प्रोडक्शन वर्शन डिप्लॉय (मॉक)
जब प्रोडक्शन वातावरण सिमुलेट करते हैं, तो अलग पोर्ट, ENV वेरिएबल या स्टार्टविधि प्रयोग की जा सकती है। रिवर्स प्रॉक्सी कंफिगरेशन वही लागूऑप होता है।
Koa.js प्रोडक्शन सर्वर (मॉक) चलाएँ
एक नए टर्मिनल में, डेव सर्वर बंद करें और प्रोडक्शन मोड (उदा. पोर्ट 8586 व ENV सेट करें):
bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js1
2अब सर्वर प्रोडक्शन जैसे पोर्ट 8586 पर चलेगा।
ServBay Website रिवर्स प्रॉक्सी सेट करें (मॉक प्रोडक्शन)
प्रोडक्शन के लिए नया Website बनाएं:
- ServBay एप में जाएँ, Website टैब में।
- नीचे
+क्लिक करें। - डिटेल्स:
- Name:
ServBay Koa.js Prod Site - Domain:
servbay-koa-prod.servbay.demo(या अपनी पब्लिक domain, जिसमें Let's Encrypt/ACME से Certificate मिल सकता है) - Type:
Reverse Proxy - IP Address:
127.0.0.1 - Port:
8586 - Document Root: खाली या प्रोजेक्ट पथ।
- Name:
- सेव और लागू करें।
.servbay.demoडोमेन पर ServBay User CA सर्टिफिकेट मिलता है। पब्लिक domain पर Let's Encrypt/ACME से SSL संभव है—विस्तृत जानकारी के लिए SSL द्वारा वेबसाइट सुरक्षित करना देखें।Koa.js प्रोडक्शन वेबसाइट (मॉक) एक्सेस करें
ब्राउज़र में
https://servbay-koa-prod.servbay.demoखोलें।आप उसी "Hello from ServBay Koa.js App!" आउटपुट देखेंगे, लेकिन यह रिवर्स प्रॉक्सी द्वारा पोर्ट 8586 पर चल रहे सर्वर से आएगा।
डेटाबेस कनेक्शन
ServBay में कई लोकप्रिय डेटाबेस (MongoDB, Redis, MariaDB [MySQL compatible], PostgreSQL) शामिल हैं। Koa.js प्रोजेक्ट में ये सब लोकल—localhost—से कनेक्ट किए जा सकते हैं।
नीचे कुछ Node.js ड्राइवर कोड स्निपेट्स दिये हैं। पहले, ServBay के Packages सेक्शन से संबंधित डेटाबेस इंस्टाल/रन होना चाहिए।
MongoDB कनेक्ट करें
पहले प्रोजेक्ट में MongoDB ड्राइवर (जैसे
mongooseयाmongodb) इंस्टाल करें:bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # या npm install mongodb1
2फिर
app.jsमें कनेक्शन कोड डालें:javascript// Mongoose से MongoDB कनेक्ट करें const mongoose = require('mongoose'); // ServBay का Default MongoDB, authentication की जरूरत नहीं, database नाम चाहे जैसा दे सकते हैं mongoose.connect('mongodb://localhost:27017/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err)); // नोट: असली एप में कनेक्शन कोड स्टार्टअप लॉजिक में डालें, // और कनेक्ट सफल हो तभी एप server सुनना शुरू करे।1
2
3
4
5
6
7
8
9
10
11
12
13ServBay का MongoDB
27017पोर्ट पर चलता है, authentication डिफ़ॉल्ट रूप से नहीं चाहिए। database name exist न हो तो ऑटो जनरेट हो जाता है।Redis कनेक्ट करें
Redis के लिए Node.js क्लाइंट लाइब्रेरी इंस्टाल करें:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis1
2Redis सर्वर कनेक्ट करें:
javascript// Redis क्लाइंट से Redis जुड़ें const redis = require('redis'); // Default रूप से localhost:6379 पर कनेक्ट करें (ServBay default) const client = redis.createClient({ url: 'redis://localhost:6379' }); client.on('connect', () => { console.log('Connected to Redis'); }); client.on('error', (err) => { console.error('Redis connection error:', err); }); // Redis सर्वर से कनेक्ट करें client.connect(); // नोट: असली एप में, Redis ऑपरेशन तभी करें जब connect event आ जाए, // उदाहरण के लिए async/await के साथ client.connect()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21ServBay का Redis
6379पोर्ट पर है—कोई पासवर्ड नहीं।MariaDB (या MySQL) से कनेक्ट करें
MariaDB, MySQL का फ़र्क है; ServBay पर MariaDB इंस्टाल है।
MariaDB के Node.js ड्राइवर इंस्टाल करें:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # या npm install mysql2 (सुझाव)1
2mariadbड्राइवर से कनेक्ट करें:javascript// mariadb क्लाइंट से MariaDB कनेक्ट करें const mariadb = require('mariadb'); // ServBay का Default MariaDB root password: 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // database ensure करें, या अवश्यतानुसार बदलें connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); }) .catch(err => { console.error("MariaDB connection error:", err); }); // नोट: असली एप में कनेक्शन पूल से कनेक्शन लेना async प्रक्रिया है1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22mysql2(सुझाव) के साथ कनेक्शन:javascript// mysql2 क्लाइंट से MariaDB/MySQL कनेक्ट करें const mysql = require('mysql2/promise'); // ServBay का Default MariaDB root password: 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // सुनिश्चित करें कि DB मौजूद है waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL using mysql2"); conn.release(); }) .catch(err => { console.error("MariaDB/MySQL connection error:", err); }); // नोट: root password ServBay की GUI में database settings में देखें/बदलें। // सलाह: प्रोजेक्ट में password हार्डकोड न करें; ENV वेरिएबल का प्रयोग करें।1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25ServBay का MariaDB
3306पर चलता है, root password ServBay database settings में मिलता है।servbay_koa_appDB मौजूदा न हो तो पहले बना लें।PostgreSQL से कनेक्ट करें
PostgreSQL ड्राइवर इंस्टाल करें:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg1
2सर्वर से कनेक्ट करें:
javascript// pg क्लाइंट से PostgreSQL कनेक्ट करें const { Pool } = require('pg'); // ServBay default: user='user', password='password' const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_koa_app', // DB जरूर बना लें password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); client.release(); }); // नोट: default username/password ServBay GUI के database settings में मिलेंगे/बदले जा सकते हैं। // सलाह: हार्डकोड password न रखें।1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23ServBay पर PostgreSQL
5432पर है; default credentials ServBay database settings में मिलेंगे।servbay_koa_appDB ensure करें।
ServBay में डेटाबेस प्रबंधन
Besides कोड, ग्राफिकल टूल्स से भी ServBay database प्रबंधित किया जा सकता है—ये सभी local, localhost या 127.0.0.1 पर चल रहे हैं।
- Default password देख/बदल सकते हैं: ServBay एप में database package के settings से root/user का पासवर्ड देख/बदल सकते हैं।
- Database/user बनाना: TablePlus, DBeaver, pgAdmin, MongoDB Compass जैसे टूल से ServBay के database से कनेक्ट करें, फिर SQL या GUI के ज़रिये DB, user या tables बनाएं।
सावधानियाँ
- पोर्ट कंफ्लिक्ट: Koa.js एप्लिकेशन के लिए इस्तेमाल पोर्ट (जैसे 8585, 8586) सिस्टम में किसी और सर्विस द्वारा उपयोग न हो।
- ServBay की स्थिति: ServBay एप और आवश्यक Node.js पैकेज व database सर्विसेस चालू हों।
- hosts फाइल: ServBay अपने आप hosts फाइल संभालता है, लेकिन domain रिजॉल्व में समस्या हो तो
/etc/hostsचेक करें। - फ़ायरवॉल: macOS या थर्ड पार्टी फ़ायरवॉल ServBay/Node.js के नेटवर्क को ब्लॉक न करे।
- लॉग्स देखना: समस्या आने पर ServBay एप, या terminal में Node.js प्रॉसेस के लॉग्स देखें—डायग्नोसिस में मदद मिलेगी।
अक्सर पूछे जाने वाले सवाल (FAQ)
प्रश्न: Koa.js प्रोजेक्ट को एक्सेस के लिए ServBay का रिवर्स प्रॉक्सी क्यों ज़रूरी है?
उत्तर: रिवर्स प्रॉक्सी (ServBay Website फीचर) के कई फायदे हैं:
- प्रोडक्शन जैसे अनुभव: कस्टम डोमेन (जैसे
.servbay.demoया अपना domain) उपयोग, केवलlocalhost:PORTके बजाय। - SSL सपोर्ट: ServBay local वेबसाइट के लिए SSL सर्टिफिकेट ऑटो कॉन्फ़िगर करता है—HTTPS पर टेस्टिंग संभव।
- एकीकृत प्रबंधन: ServBay में अपने सभी local dev websites को manage करना आसन।
- पोर्ट छुपाना: बाहरी एक्सेस (यदि अनुमति हो) या ब्राउज़र स्टैंडर्ड पोर्ट 80/443 पर जाता है, और रिवर्स प्रॉक्सी अंदरूनी high port पर।
- प्रोडक्शन जैसे अनुभव: कस्टम डोमेन (जैसे
प्रश्न: क्या बिना रिवर्स प्रॉक्सी, सीधे
localhost:PORTसे एक्सेस कर सकते हैं?उत्तर: बिल्कुल। आपकी Koa.js एप्लिकेशन किसी पोर्ट (जैसे 3000) पर सुन रही है, तो ब्राउज़र में
http://localhost:PORTसे एक्सेस/टेस्ट कर सकते हैं। लेकिन ServBay के कस्टम डोमेन, ऑटो SSL, लॉग्स आदि सुविधाएं नहीं मिलेंगी। रियल डिप्लॉयमेंट के नजदीक विकास अनुभव के लिए रिवर्स प्रॉक्सी बेहतर है।प्रश्न: ServBay का Default Database Password क्या है? कैसे बदलें?
उत्तर: ServBay के Default Database Password की जानकारी ServBay एप के Database सेक्शन में मिलती है। संबंधित database (जैसे MariaDB, PostgreSQL) के पास settings आइकन क्लिक करें, वहाँ Default user/password दिखेगा/बदला जा सकता है। सुरक्षा हेतु Default password बदलना ज़रूरी है।
निष्कर्ष
इस आलेख में आपने जाना कि macOS पर ServBay का उपयोग कर कैसे एक Koa.js विकास वातावरण निर्मित करें। हमने एक बेसिक Koa.js एप्लिकेशन बनाया, ServBay की Website फीचर से रिवर्स प्रॉक्सी सेटअप कर, कस्टम डोमेन व HTTPS के साथ local व प्रोडक्शन mock instance चलाया। साथ ही, ServBay द्वारा उपलब्ध अनेक डेटाबेस से जोड़ना भी सीखा।
ServBay Node.js डेवलपर्स के लिए ढेरों उपयोगी सुविधाएं देता है—ताकि आप सेटअप के बजाय कोड पर ध्यान केंद्रित कर सकें। ServBay के features से आपकी विकास गति तेजी से बढ़ेगी।
