ExpressJS অ্যাপ্লিকেশন তৈরি করার সময়, এক্সপ্রেস এবং অন্যান্য ডিপেনডেন্সির কনফিগারেশন এবং পরিবেশ (environments) ম্যানেজ করা গুরুত্বপূর্ণ। পরিবেশের ওপর ভিত্তি করে অ্যাপ্লিকেশনের আচরণ পরিবর্তন করা, যেমন ডেভেলপমেন্ট (development), প্রোডাকশন (production), বা টেস্টিং (testing) পরিবেশে আলাদা কনফিগারেশন থাকা, সিস্টেমের কার্যকারিতা উন্নত করতে সাহায্য করে। এই ক্ষেত্রে configuration files এবং environment variables ব্যবস্থাপনা একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
১. ExpressJS অ্যাপ্লিকেশনে Environment সেটআপ
প্রথমে, পরিবেশের ধারণা এবং এটি ব্যবস্থাপনা করার পদ্ধতি বুঝে নেওয়া জরুরি। পরিবেশ (environment) সাধারণত দুটি ধরনের হতে পারে:
- Development: ডেভেলপমেন্ট পর্যায়ে অ্যাপ্লিকেশন চালানোর সময় ব্যবহৃত সেটিংস। এখানে সাধারণত লগিং এবং ডিবাগিং সক্ষম করা থাকে।
- Production: প্রোডাকশন পরিবেশে অ্যাপ্লিকেশন চালানোর জন্য সেটিংস। এখানে সাধারণত নিরাপত্তা এবং পারফরম্যান্স অপটিমাইজ করা হয়।
১.১. NODE_ENV Environment Variable
ExpressJS অ্যাপ্লিকেশনে পরিবেশ পরিচালনা করতে সবচেয়ে সাধারণ উপায় হল NODE_ENV পরিবেশ ভেরিয়েবল ব্যবহার করা। এটি সাধারণত দুটি মান নিতে পারে: development অথবা production।
NODE_ENV সেট করা হয়:
- ডেভেলপমেন্ট পরিবেশের জন্য:
NODE_ENV=development - প্রোডাকশন পরিবেশের জন্য:
NODE_ENV=production
আপনি পরিবেশ ভেরিয়েবলটি কমান্ড লাইনে বা কোডের মধ্যে সেট করতে পারেন।
১.২. NODE_ENV এর মাধ্যমে Environment নির্ধারণ
const express = require('express');
const app = express();
if (process.env.NODE_ENV === 'production') {
console.log('Running in production mode');
} else {
console.log('Running in development mode');
}
app.listen(3000, () => {
console.log('Server is running...');
});
উপরের কোডে process.env.NODE_ENV এর মান চেক করা হচ্ছে। যদি এটি production হয়, তবে প্রোডাকশন সম্পর্কিত কনফিগারেশন চালু হবে, আর যদি এটি ডেভেলপমেন্ট হয়, তবে ডেভেলপমেন্ট কনফিগারেশন কার্যকর হবে।
২. Configuration Files ব্যবস্থাপনা
ExpressJS অ্যাপ্লিকেশনে কনফিগারেশন ফাইল ব্যবহার করে বিভিন্ন পরিবেশের জন্য আলাদা আলাদা সেটিংস রাখাটা খুবই প্রয়োজনীয়। এই কাজের জন্য, সাধারণত একটি কনফিগারেশন ফাইল বা ফোল্ডার তৈরি করা হয় যেখানে বিভিন্ন পরিবেশের কনফিগারেশন রাখা যায়।
২.১. .env ফাইল ব্যবহার
একটি .env ফাইল ব্যবহার করে আপনি অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় পরিবেশ ভেরিয়েবল সেট করতে পারেন। এতে ডাটাবেজ ইউজারনেম, পাসওয়ার্ড, অ্যাপ্লিকেশন কীগুলো ইত্যাদি সংরক্ষণ করা হয়।
.env ফাইলের উদাহরণ:
NODE_ENV=development
PORT=3000
DATABASE_URL=mongodb://localhost:27017/myapp
SECRET_KEY=mysecretkey
এই .env ফাইলটি প্রকল্পের মূল ডিরেক্টরিতে রাখতে হয়। এরপর, dotenv প্যাকেজটি ব্যবহার করে আপনি এই ভেরিয়েবলগুলো অ্যাপ্লিকেশনে লোড করতে পারেন।
২.২. dotenv প্যাকেজ ব্যবহার
dotenv প্যাকেজটি ইনস্টল করতে:
npm install dotenv
এরপর, আপনার app.js ফাইলে এইভাবে dotenv ব্যবহার করুন:
require('dotenv').config();
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
এখানে, dotenv.config() ব্যবহার করে .env ফাইলের সমস্ত ভেরিয়েবল লোড করা হচ্ছে। এরপর, আপনি process.env.VARIABLE_NAME এর মাধ্যমে ভেরিয়েবলগুলি অ্যাক্সেস করতে পারবেন।
২.৩. আলাদা পরিবেশের জন্য আলাদা কনফিগ ফাইল
কিছু অ্যাপ্লিকেশনে, আপনি আলাদা আলাদা কনফিগ ফাইল তৈরি করতে পারেন যা ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য কনফিগারেশন রাখবে।
config.js:
const config = {
development: {
db: 'mongodb://localhost:27017/dev_db',
secretKey: 'dev_secret_key',
port: 3000
},
production: {
db: 'mongodb://localhost:27017/prod_db',
secretKey: 'prod_secret_key',
port: 80
}
};
const currentConfig = config[process.env.NODE_ENV || 'development'];
module.exports = currentConfig;
এখানে, config.js ফাইলে ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য আলাদা কনফিগারেশন রাখা হয়েছে। এখন, আপনার অ্যাপ্লিকেশন এই কনফিগারেশন অনুসারে ডাটাবেজ বা অন্যান্য সেটিংস ব্যবহার করবে।
আপনার অ্যাপ্লিকেশনে এই কনফিগারেশন ব্যবহার করতে:
const express = require('express');
const config = require('./config');
const app = express();
const port = config.port;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
৩. config ফোল্ডার ব্যবহার
বড় প্রোজেক্টে, কনফিগারেশন ব্যবস্থাপনা আরও উন্নত করতে config/ নামক একটি ফোল্ডার ব্যবহার করা যায়, যেখানে ডেভেলপমেন্ট, প্রোডাকশন, এবং অন্যান্য পরিবেশের জন্য আলাদা ফাইল রাখা হবে। যেমন:
my-express-app/
│
├── config/
│ ├── default.js
│ ├── production.js
│ └── development.js
└── app.js
এখানে, আপনি config ফোল্ডারের মধ্যে প্রতিটি পরিবেশের জন্য আলাদা কনফিগারেশন ফাইল রাখবেন এবং প্রধান অ্যাপ ফাইলে সেগুলো ইমপোর্ট করবেন।
সারাংশ
ExpressJS অ্যাপ্লিকেশনে পরিবেশ এবং কনফিগারেশন ফাইল ব্যবস্থাপনা গুরুত্বপূর্ণ, কারণ এটি বিভিন্ন পরিবেশে অ্যাপ্লিকেশনের কনফিগারেশন আলাদা রাখতে সাহায্য করে। .env ফাইল এবং dotenv প্যাকেজের মাধ্যমে পরিবেশ ভেরিয়েবলগুলি সহজেই ম্যানেজ করা যায়। এছাড়াও, অ্যাপ্লিকেশনের পরিবেশের জন্য আলাদা কনফিগ ফাইল ব্যবহার করে ডেভেলপমেন্ট ও প্রোডাকশন পরিবেশের জন্য আলাদা সেটিংস ম্যানেজ করা যায়, যা অ্যাপ্লিকেশনের কার্যকারিতা উন্নত করে।
Read more