KoaJS একটি লঘু এবং কাস্টমাইজযোগ্য ওয়েব ফ্রেমওয়ার্ক, যা Node.js এর উপর তৈরি। যখন আপনি একটি ওয়েব অ্যাপ্লিকেশন তৈরি করেন, তখন সাধারণত কিছু স্ট্যাটিক রিসোর্স যেমন CSS, JavaScript, ইমেজ বা ফন্ট ফাইল সার্ভ করতে হয়। KoaJS-এ স্ট্যাটিক রিসোর্স ম্যানেজ করার জন্য koa-static প্যাকেজটি ব্যবহৃত হয়। এটি আপনাকে একটি public ফোল্ডার তৈরি করতে এবং সেখান থেকে স্ট্যাটিক ফাইল সার্ভ করতে সাহায্য করে।
১. koa-static প্যাকেজ ইনস্টল করা
প্রথমে, আপনি koa-static প্যাকেজটি ইনস্টল করতে হবে, যা স্ট্যাটিক ফাইল সার্ভ করার জন্য ব্যবহৃত হয়।
npm install koa-static
২. Public ফোল্ডার তৈরি করা
এখন, একটি public নামক ফোল্ডার তৈরি করুন আপনার প্রজেক্টের মূল ডিরেক্টরিতে। এই ফোল্ডারটির মধ্যে আপনি সমস্ত স্ট্যাটিক ফাইল যেমন CSS, JavaScript, ইমেজ, ফন্ট ইত্যাদি রাখবেন। উদাহরণস্বরূপ:
/my-koa-app
/public
/css
style.css
/images
logo.png
/js
app.js
app.js
এখানে, public ফোল্ডারে css, images, এবং js ফোল্ডার রয়েছে, যেখানে সংশ্লিষ্ট ফাইলগুলো রাখা হয়েছে।
৩. koa-static ব্যবহার করা
এখন koa-static প্যাকেজটি ব্যবহার করে স্ট্যাটিক ফাইল সার্ভ করার জন্য কোড লিখতে হবে। এই প্যাকেজটি public ফোল্ডার থেকে ফাইলগুলি সরাসরি ক্লায়েন্টের কাছে পাঠানোর কাজ করবে।
const Koa = require('koa');
const Router = require('koa-router');
const path = require('path');
const serve = require('koa-static'); // koa-static প্যাকেজ ইমপোর্ট করা
const app = new Koa();
const router = new Router();
// স্ট্যাটিক ফোল্ডার সেট করা
app.use(serve(path.join(__dirname, 'public')));
// একটি সাধারণ রাউট তৈরি
router.get('/', (ctx) => {
ctx.body = 'Welcome to KoaJS!';
});
app.use(router.routes()).use(router.allowedMethods());
// সার্ভার চালু করা
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
এখানে, koa-static ব্যবহার করে public ফোল্ডারটি নির্দিষ্ট করা হয়েছে। path.join(__dirname, 'public') নির্দেশ করে যে public ফোল্ডারের সমস্ত ফাইল স্ট্যাটিক রিসোর্স হিসেবে সার্ভ হবে।
৪. স্ট্যাটিক রিসোর্স অ্যাক্সেস করা
আপনি যদি http://localhost:3000/css/style.css এ গিয়ে স্টাইলশিট অ্যাক্সেস করতে চান, তাহলে এটি স্বয়ংক্রিয়ভাবে স্ট্যাটিক ফোল্ডারের মধ্যে থেকে পাওয়া যাবে।
এছাড়া, আপনি http://localhost:3000/images/logo.png বা http://localhost:3000/js/app.js URL গুলোর মাধ্যমে স্ট্যাটিক ফাইল অ্যাক্সেস করতে পারবেন।
৫. স্ট্যাটিক ফাইলের জন্য URL পাথ কাস্টমাইজ করা
আপনি চাইলে স্ট্যাটিক রিসোর্সের জন্য URL পাথ কাস্টমাইজও করতে পারেন। যেমন, আপনি public ফোল্ডারের ভিতরে /assets পাথ ব্যবহার করতে চান:
app.use(serve(path.join(__dirname, 'public'), {
prefix: '/assets', // স্ট্যাটিক রিসোর্সের জন্য কাস্টম URL পাথ
}));
এখন, আপনি http://localhost:3000/assets/css/style.css অথবা http://localhost:3000/assets/js/app.js এর মাধ্যমে স্ট্যাটিক ফাইল অ্যাক্সেস করতে পারবেন।
৬. ক্যাশিং এবং কাস্টম হেডার
কিছু ক্ষেত্রে, আপনি স্ট্যাটিক ফাইল ক্যাশ করতে চাইতে পারেন বা কাস্টম হেডার ব্যবহার করতে পারেন। koa-static এটি সমর্থন করে এবং আপনি কাস্টম হেডার যোগ করতে পারেন।
app.use(serve(path.join(__dirname, 'public'), {
maxage: 365 * 24 * 60 * 60 * 1000, // 1 বছর পর্যন্ত ক্যাশিং
setHeaders: (res, path, stats) => {
res.set('Cache-Control', 'public, max-age=31536000'); // ক্যাশিং হেডার সেট করা
}
}));
এখানে, maxage দিয়ে স্ট্যাটিক ফাইলের জন্য ক্যাশিংয়ের সময় সীমা নির্ধারণ করা হয়েছে এবং setHeaders ফাংশনের মাধ্যমে ক্যাশিং হেডার কাস্টমাইজ করা হয়েছে।
৭. ডিরেক্টরি ব্রাউজিং নিষিদ্ধ করা
ডিরেক্টরি ব্রাউজিং নিষিদ্ধ করতে, অর্থাৎ স্ট্যাটিক ফোল্ডারের মধ্যে থাকা ফাইলগুলো ব্যবহারকারীদের ব্রাউজ করতে না দেওয়ার জন্য koa-static সেটিংস কাস্টমাইজ করতে পারেন।
app.use(serve(path.join(__dirname, 'public'), {
hidden: true // ডিরেক্টরি ব্রাউজিং নিষিদ্ধ
}));
এটি স্ট্যাটিক ফোল্ডারের মধ্যে থাকা ডিরেক্টরি বা ফাইলগুলো ডিরেক্টরি ব্রাউজিংয়ের মাধ্যমে অ্যাক্সেস করতে বাধা দেবে।
সারাংশ
KoaJS-এ স্ট্যাটিক রিসোর্স ম্যানেজ করা খুবই সহজ। koa-static প্যাকেজ ব্যবহার করে আপনি একটি public ফোল্ডার তৈরি করতে পারেন এবং সেখানে থাকা CSS, JavaScript, ইমেজ বা অন্য স্ট্যাটিক ফাইলগুলি সার্ভ করতে পারেন। এছাড়া, URL পাথ কাস্টমাইজেশন, ক্যাশিং, কাস্টম হেডার এবং ডিরেক্টরি ব্রাউজিং নিষিদ্ধ করার মতো বিভিন্ন সুবিধা রয়েছে, যা আপনার অ্যাপ্লিকেশনটিকে আরও নিরাপদ এবং কার্যকরী করে তোলে। KoaJS-এ এই প্রক্রিয়া খুবই সোজা এবং আপনাকে একটি মডুলার ও স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
Read more