ServBay की मदद से Express.js प्रोजेक्ट बनाएं और चलाएं
Express.js क्या है?
Express.js, Node.js पर आधारित एक तेज़, ओपन और बेहद सिंपल वेब एप्लिकेशन फ्रेमवर्क है। यह सिंगल-पेज, मल्टी-पेज और हाइब्रिड वेब एप्लिकेशन बनाने के लिए कई शक्तिशाली फीचर्स देता है। Express.js, Node.js ईकोसिस्टम के सबसे लोकप्रिय फ्रेमवर्क्स में से एक है और इसके सिंपल और फ्लेक्सिबल डिज़ाइन के कारण डेवलपर्स के बीच काफ़ी पसंद किया जाता है।
Express.js की मुख्य विशेषताएं और फायदे
- सरलता और लचीलापन: Express.js एक सरल API और फ्लेक्सिबल मिडलवेयर सिस्टम देता है, जिससे वेब एप्लिकेशन बनाना बेहद प्रभावी हो जाता है।
- मिडलवेयर: यह कई प्रकार के मिडलवेयर को सपोर्ट करता है, जिससे रिक्वेस्ट और रिस्पॉन्स को आसानी से मैनेज किया जा सकता है—जैसे बॉडी पार्स करना, सेशन हैंडलिंग, स्टैटिक फाइल सर्व करना वगैरह।
- रूटिंग: यह शक्तिशाली रूटिंग फीचर उपलब्ध कराता है, जिससे विभिन्न HTTP मेथड्स (GET, POST, PUT, DELETE आदि) और URL पाथ्स के लिए रिक्वेस्ट हैंडल की जा सकती हैं।
- इंटीग्रेशन की सुविधा: अलग-अलग टेम्प्लेट इंजन (जैसे Pug, EJS, Handlebars), डाटाबेस (जैसे MongoDB, MySQL, PostgreSQL), और अन्य Node.js मॉड्यूल के साथ आसानी से इंटीग्रेट किया जा सकता है।
- समुदाय और ईकोसिस्टम: बड़ा डेवलपर कम्युनिटी और तीसरे पक्ष के बहुत सारे प्लगिन/मिडलवेयर उपलब्ध जो किसी भी समस्या का समाधान जल्दी ढूंढने में मदद करते हैं।
Express.js की मदद से डेवलपर्स हाई-परफॉर्मेंस वेब एप्स और API जल्दी से डेवलप कर सकते हैं। ServBay एक शक्तिशाली लोकल वेब डेवेलपमेंट एनवायरनमेंट के तौर पर Express.js प्रोजेक्ट्स के लिए एक आसान Node.js एनवायरनमेंट व बेहतरीन वेबसाइट (रिवर्स प्रॉक्सी) और डाटाबेस मैनेजमेंट फीचर्स उपलब्ध कराता है।
ServBay के साथ Express.js प्रोजेक्ट बनाएं व चलाएं
इस लेख में आप जानेंगे कि ServBay के Node.js एनवायरनमेंट के ज़रिए Express.js प्रोजेक्ट किस तरह बनाया, सेटअप और चलाया जाता है। हम ServBay की वेबसाइट सुविधा का इस्तेमाल वेब सर्वर सेट करने के लिए करेंगे और रिवर्स प्रॉक्सी की मदद से प्रोजेक्ट एक्सेस करेंगे। यह तरीका Node.js, Python, Go, Java जैसी टेक्नोलॉजीज़ के लिए बढ़िया है, जिनमें ऐप्लिकेशन आमतौर पर किसी खास पोर्ट पर चलती हैं।
आवश्यकताएँ
शुरू करने से पहले, ये बातें सुनिश्चित करें:
- आपने macOS पर सफलतापूर्वक ServBay इंस्टॉल कर लिया है।
- आपने ServBay में Node.js पैकेज इंस्टॉल और एनेबल कर लिया है। आप इसे ServBay कंट्रोल पैनल के "पैकेज" टैब में मैनेज कर सकते हैं।
- (वैकल्पिक) यदि आपको डाटाबेस कनेक्ट करना है, तो सुनिश्चित कीजिए कि आपने आवश्यक डाटाबेस पैकेज (जैसे MariaDB, PostgreSQL, MongoDB, Redis, MySQL) इंस्टॉल/चालू किए हैं।
- आपको बेसिक टर्मिनल या कमांड लाइन आॅपरेशन की जानकारी है।
Express.js प्रोजेक्ट बनाएँ
प्रोजेक्ट इनिशियलाइज़ करें
सबसे पहले, टर्मिनल खोलें और ServBay की सुझाई गई वेबसाइट रूट डायरेक्टरी
/Applications/ServBay/wwwमें नेविगेट करें। अबnpx express-generatorकमांड से Express.js प्रोजेक्ट का ढाँचा बनाएँ।npxnpm v5.2+ में दिया गया टूल है, जिससे Node.js पैकेज का एग्जीक्यूटेबल फाइल रन किया जा सकता है।bashcd /Applications/ServBay/www npx express-generator servbay-express-app1
2यह
/Applications/ServBay/wwwडायरेक्टरी के भीतरservbay-express-appनाम से नया फोल्डर बनाएगा, जिसमें Express.js की बेसिक स्ट्रक्चर होगी।प्रोजेक्ट डिपेंडेंसीज़ इंस्टॉल करें
अब नए बने फोल्डर
servbay-express-appमें जाएं औरnpm installकमांड से सभी आवश्यक डिपेंडेंसीज़ इंस्टॉल करें, जिसमें Express.js फ्रेमवर्क, डिफॉल्ट टेम्प्लेट इंजन, स्टैटिक फाइल सर्व आदि शामिल हैं।bashcd servbay-express-app npm install1
2डिपेंडेंसीज़ के इंस्टॉल होने तक प्रतीक्षा करें।
Express.js प्रोजेक्ट का आउटपुट बदलें
प्रोजेक्ट सफलतापूर्वक चल रहा है या नहीं, इसे जांचने के लिए हम होमपेज का डिफॉल्ट आउटपुट बदलेंगे।
routes/index.jsफाइल में बदलाव करेंExpress.js प्रोजेक्ट में आमतौर पर route files अलग-अलग URL की requests को हैंडल करती हैं। प्रोजेक्ट डायरेक्टरी में
routes/index.jsखोलें, जो/रूट (home page) की GET request हैंडल करता है। यहाँ की कोड को बदलें ताकि यह डिफॉल्ट Pug टेम्प्लेट की जगह एक सिंपल टेक्स्ट रिस्पॉन्स भेजे।javascriptvar express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // टेक्स्ट रिस्पॉन्स भेजने के लिए संशोधित किया गया res.send('Hello ServBay!'); }); module.exports = router;1
2
3
4
5
6
7
8
9
10फाइल सेव करें।
डेवलपमेंट मोड में जाएँ
डेवलपमेंट के दौरान, हम अक्सर एक लोकल सर्वर चलाते हैं जिससे रियल-टाइम में बदलाव देख सकें। Express.js प्रोजेक्ट्स को npm start कमांड से शुरू किया जा सकता है।
डेवलपमेंट सर्वर रन करें
प्रोजेक्ट रूट
servbay-express-appमें नीचे दिया कमांड चलाकर सर्वर शुरू करें।PORTएनवायरनमेंट वैरिएबल से पोर्ट सेट करें (यहाँ8585) औरDEBUGसे डिबगिंग ऑन करें।bashcd /Applications/ServBay/www/servbay-express-app PORT=8585 DEBUG=servbay-express-app:* npm start1
2टर्मिनल में सर्वर स्टार्ट होने की जानकारी दिखाई देगी और Express.js ऐप्लिकेशन पोर्ट
8585पर सुन रही होगी।ServBay वेबसाइट के रिवर्स प्रॉक्सी की सेटिंग करें
चूँकि Express.js ऐप्लिकेशन कस्टम पोर्ट (जैसे 8585) पर चलती है, स्टैण्डर्ड वेब पोर्ट (80/443) पर नहीं, इसलिए ServBay की वेबसाइट सुविधा से रिवर्स प्रॉक्सी कॉन्फिगर करें। ServBay का वेब सर्वर (डिफॉल्ट Caddy) 80/443 पर सुनता है और खास डोमेन की रिक्वेस्ट को
127.0.0.1:8585पर ऐप्लिकेशन को फॉरवर्ड करता है।ServBay कंट्रोल पैनल में जाकर "वेबसाइट्स" टैब चुनें, नई वेबसाइट जोड़ें और ये सेटिंग्स करें:
- नाम:
My first Express.js dev site(आसान पहचान के लिए नाम) - डोमेन:
servbay-express-test.servbay.demo(.servbay.demoसे ServBay User CA द्वारा स्वतः HTTPS मिलता है) - वेबसाइट प्रकार:
रिवर्स प्रॉक्सीचुनें - IP:
127.0.0.1(याlocalhost) - पोर्ट:
8585(Express.js ऐप के चलने का पोर्ट)
सेटिंग सेव करें और लागू करें। ServBay खुद HTTP सर्वर और SSL सर्टिफिकेट्स कॉन्फ़िगर कर देगा (
.servbay.demoडोमेन के लिए भी)।विस्तार में स्टेप्स के लिए Node.js डेवलपमेंट वेबसाइट जोड़ना गाइड देखें।
- नाम:
डेवलपमेंट मोड में वेबसाइट एक्सेस करें
ब्राउज़र में जाएं और अपने डोमेन
https://servbay-express-test.servbay.demoपर ओपन करें। ServBay का वेब सर्वर रिक्वेस्ट पकड़ेगा और रिवर्स प्रॉक्सी के ज़रिए 8585 पोर्ट पर चलती Express.js ऐप्लिकेशन तक भेजेगा। पेज पर "Hello ServBay!" दिखना चाहिए।चूंकि ServBay कस्टम डोमेन और मुफ़्त SSL सर्टिफिकेट सपोर्ट करता है (
.servbay.demoके लिए भी ऑटो HTTPS सहित), आप लोकल डेवेलपमेंट में भी आसानी से HTTPS इस्तेमाल कर सकते हैं—जो प्रोडक्शन के और करीब है और संभावित समस्याएं पहले पकड़ने में मदद करेगा।
प्रोडक्शन वर्शन डिप्लॉय करें
जब आपका Express.js प्रोजेक्ट तैयार हो जाए, तो आप उसे प्रोडक्शन के लिए तैयार कर सकते हैं। लोकल एनवायरनमेंट में प्रोडक्शन सेटिंग्स के साथ रन करना फाइनल टेस्टिंग के लिए उपयोगी है।
प्रोडक्शन एनवायरनमेंट तैयार करें
आमतौर पर Express.js प्रोजेक्ट्स को प्रोडक्शन में
NODE_ENVवैरिएबल कोproductionपर सेट करके चलाया जाता है। इससे कुछ लाइब्रेरीज़ का व्यवहार बदल सकता है जैसे डिबगिंग ऑफ, परफॉरमेंस ऑप्टिमाइजेशन आदि। सुनिश्चित करें कि आपका कोड इसकी सेटिंग्स को सही तरीके से संभालता है।प्रोडक्शन सर्वर रन करें
प्रोजेक्ट रूट में ये कमांड चलाएँ, जिससे दूसरा, प्रोडक्शन-जैसा इंस्टेंस दूसरे पोर्ट (जैसे
8586) पर चलेगा औरNODE_ENVproductionपर रहेगा।bashcd /Applications/ServBay/www/servbay-express-app PORT=8586 NODE_ENV=production npm start1
2टर्मिनल में सर्वर स्टार्ट और पोर्ट
8586शो होगा।ServBay वेबसाइट रिवर्स प्रॉक्सी (प्रोडक्शन) कॉन्फ़िगर करें
डेवेलपमेंट जैसी ही प्रक्रिया—प्रोडक्शन के लिए अलग रिवर्स प्रॉक्सी सर्वसाइट जोड़ें।
ServBay कंट्रोल पैनल में "वेबसाइट्स" में जाएं, नई वेबसाइट जोड़ें:
- नाम:
My first Express.js production site - डोमेन:
servbay-express-test-prod.servbay.demo(या कोई भी अन्य प्रोडक्शन डोमेन) - वेबसाइट प्रकार:
रिवर्स प्रॉक्सी - IP:
127.0.0.1 - पोर्ट:
8586(प्रोडक्शन इंस्टेंस का पोर्ट)
सेव कर के लागू करें।
- नाम:
प्रोडक्शन मोड वेबसाइट एक्सेस करें
ब्राउज़र में जाकर अपने प्रोडक्शन डोमेन
https://servbay-express-test-prod.servbay.demoखोलें। ServBay रिवर्स प्रॉक्सी के ज़रिये 8586 पोर्ट की Express.js ऐप्लिकेशन दिखाई देगी। इससे आप लोकल में भी प्रोडक्शन कंडिशन में ऐप को टेस्ट कर सकते हैं।
डाटाबेस कनेक्शन
ServBay लोकल डेवेलपमेंट के लिए कई डाटाबेस पैकेज सपोर्ट करता है—जैसे MariaDB, PostgreSQL, MongoDB, Redis। यदि आपने ये DB पैकेज एनेबल किए हैं, तो Express.js प्रोजेक्ट आसानी से इनसे कनेक्ट हो सकता है। ServBay आमतौर पर डिफॉल्ट यूसर-पासवर्ड सेट करता है, जैसे MariaDB/MySQL का root यूजर पासवर्ड password, PostgreSQL में यूजर user, पासवर्ड password, डिफॉल्ट DB servbay_default। आप ServBay के डाटाबेस इंटरफ़ेस में दिए गए निर्देशों या डिफॉल्ट्स के अनुसार कनेक्ट कर सकते हैं।
यहाँ कुछ कोड उदाहरण दिए गए हैं (सुनिश्चित करें npm install <पैकेज-नेम> चला लें):
MongoDB से कनेक्ट करें
पहले प्रोजेक्ट डायरेक्टरी में MongoDB ड्राइवर
mongooseइंस्टॉल करें:bashnpm install mongoose1फिर अपनी Express.js कोड (जैसे
app.jsया अलग config फाइल में) यह लिखें:javascriptvar mongoose = require('mongoose'); // लोकल चल रही MongoDB (servbay-express-app) से कनेक्शन // ServBay में डिफॉल्ट MongoDB कनेक्शन के लिए ऑथेंटिकेशन नहीं चाहिए mongoose.connect('mongodb://localhost/servbay-express-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err));1
2
3
4
5
6
7
8
9
10ध्यान दें, ServBay में MongoDB पैकेज स्टार्ट हो।
Redis से कनेक्ट करें
redisकस्टमर लाइब्रेरी इंस्टॉल करें:bashnpm install redis1प्रोजेक्ट में इस्तेमाल करें:
javascriptvar redis = require('redis'); // ServBay में Redis डिफॉल्ट localhost:6379 पर, बिना पासवर्ड के चलता है var client = redis.createClient({ host: 'localhost', port: 6379 }); client.on('connect', function() { console.log('Connected to Redis'); }); client.on('error', function (err) { console.log('Redis Error: ' + err); }); // उदाहरण: सेट और गेट की वैल्यू // client.set('mykey', 'Hello from Express!', redis.print); // client.get('mykey', function(err, reply) { // if (err) throw err; // console.log(reply); // "Hello from Express!" प्रिंट करेगा // }); // जरूरत पड़ने पर client ऑब्जेक्ट का इस्तेमाल करें1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23ध्यान दें, ServBay में Redis पैकेज स्टार्ट हो।
MariaDB / MySQL से कनेक्ट करें
ServBay MariaDB और MySQL दोनों सपोर्ट करता है। जुड़ने के लिए npm पर
mariadbयाmysql2इस्तेमाल करें। यहाँmariadbउदाहरण पर आधारित है, जो MySQL से भी जुड़ सकता है।पहले इंस्टॉल करें:
bashnpm install mariadb # या npm install mysql21फिर ServBay के डिफॉल्ट क्रेडेंशियल्स से कनेक्ट करें:
javascriptvar mariadb = require('mariadb'); // ServBay में MariaDB/MySQL डिफॉल्ट localhost:3306 पर चलता है var pool = mariadb.createPool({ host: 'localhost', port: 3306, // डिफॉल्ट पोर्ट user: 'root', // ServBay डिफॉल्ट यूजर password: 'password', // डिफॉल्ट पासवर्ड database: 'servbay_express_app', // ServBay में यह डाटाबेस बना सकते हैं connectionLimit: 5 // पूल साइज }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL"); // conn का इस्तेमाल queries के लिए करें // conn.query("SELECT 1").then(...).catch(...).finally(() => conn.release()); conn.release(); // काम पूरा होने के बाद कनेक्शन फ्री करें }) .catch(err => { console.log("Not connected due to error: " + err); });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21कनेक्ट करने से पहले, आप ServBay के DB मैनेजमेंट टूल (जैसे phpMyAdmin, Adminer आदि) में जाकर
servbay_express_appडाटाबेस बना सकते हैं। MariaDB या MySQL पैकेज चालू होना चाहिए।PostgreSQL से कनेक्ट करें
सबसे पहले Postgres क्लाइंट
pgइंस्टॉल करें:bashnpm install pg1ServBay के डिफॉल्ट क्रेडेंशियल्स से कनेक्ट करें—यूजर
user, पासवर्डpassword,डाटाबेसservbay_default।javascriptvar { Pool } = require('pg'); // ServBay में PostgreSQL डिफॉल्ट localhost:5432 पर var pool = new Pool({ user: 'user', // ServBay डिफॉल्ट यूजर host: 'localhost', database: 'servbay_default', // या आपने जो बनाया हो password: 'password', // डिफॉल्ट पासवर्ड port: 5432, // डिफॉल्ट पोर्ट }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); // client से queries चलाएँ // client.query('SELECT NOW()', (err, res) => { ... done(); }); done(); // कनेक्शन फ्री करें }); // या async/await से // try { // const client = await pool.connect(); // console.log('Connected to PostgreSQL'); // // const res = await client.query('SELECT NOW()'); // // console.log(res.rows[0]); // client.release(); // कनेक्शन फ्री करें // } catch (err) { // console.error('PostgreSQL connection error:', err); // }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31ध्यान दें, ServBay में PostgreSQL पैकेज स्टार्ट हो।
निष्कर्ष
इन स्टेप्स की मदद से आपने सफलतापूर्वक ServBay का उपयोग कर एक Express.js प्रोजेक्ट बनाया, सेटअप और रन किया। आपने सीखा कि कैसे:
express-generatorसे प्रोजेक्ट इनिशियलाइज़ करना।- Express.js ऐप को खास पोर्ट पर चलाना।
- ServBay की वेबसाइट सुविधा से रिवर्स प्रॉक्सी करके, Node.js ऐप को स्टैन्डर्ड HTTP/S पोर्ट पर एक्सेस करना।
- ServBay के एनवायरनमेंट में विभिन्न सामान्य डाटाबेस से कनेक्ट करना।
ServBay, लोकल Node.js (Express.js) डेवेलपमेंट का सेटअप और मैनेज करना बेहद आसान बनाता है, ताकि आप अपने कोड पर फोकस बने रह सकें। साथ ही, ServBay द्वारा उपलब्ध ऑटोमेटेड SSL सर्टिफिकेट, वेबसाइट बैकअप, लॉग व्यू आदि कई सुविधाएँ आपके लोकल डेवेलपमेंट वर्कफ्लो को और भी सरल बनाती हैं।
