Express.js হল একটি সহজ, দ্রুত এবং নমনীয় ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক যা Node.js এর জন্য তৈরি করা হয়েছে। TypeScript এবং Express.js একত্রিত করে আপনি একটি শক্তিশালী এবং টাইপ সেফ API তৈরি করতে পারেন। TypeScript Express.js প্রজেক্টে টাইপ সিস্টেম এবং উন্নত ডেভেলপমেন্ট অভিজ্ঞতা প্রদান করে।
এখানে আমরা দেখব কীভাবে TypeScript ব্যবহার করে Express.js অ্যাপ্লিকেশন তৈরি করবেন এবং TypeScript-এর সুবিধাগুলি Express.js-এ কীভাবে কাজে লাগবে।
১. Express.js এবং TypeScript সেটআপ
প্রথমে, আমাদের Express.js এবং TypeScript সহ একটি প্রজেক্ট সেটআপ করতে হবে।
১.১ নতুন প্রজেক্ট তৈরি করুন
আপনি প্রথমে একটি নতুন প্রজেক্ট ফোল্ডার তৈরি করুন এবং সেই ফোল্ডারে নেভিগেট করুন:
mkdir express-ts-app
cd express-ts-app
১.২ npm ইনিশিয়ালাইজ করা
npm ইনিশিয়ালাইজ করুন এবং package.json ফাইল তৈরি করুন:
npm init -y
১.৩ প্রয়োজনীয় প্যাকেজ ইনস্টল করা
এখন Express, TypeScript, এবং অন্যান্য কিছু প্রয়োজনীয় প্যাকেজ ইনস্টল করতে হবে:
npm install express
npm install --save-dev typescript @types/node @types/express ts-node
express: Express.js ফ্রেমওয়ার্ক।typescript: TypeScript এর জন্য প্যাকেজ।@types/nodeএবং@types/express: Express এবং Node.js এর জন্য টাইপ ডিফিনিশন ফাইল।ts-node: TypeScript কোড রান করার জন্য।
১.৪ TypeScript কনফিগারেশন ফাইল তৈরি করা
এখন একটি tsconfig.json ফাইল তৈরি করুন এবং এতে TypeScript কনফিগারেশন সেট করুন:
npx tsc --init
এটি একটি ডিফল্ট tsconfig.json ফাইল তৈরি করবে। আপনি এর মধ্যে কিছু পরিবর্তন করতে পারেন:
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist"
},
"include": ["src/**/*.ts"]
}
এই কনফিগারেশন TypeScript কে ES6 টার্গেট করে, এবং কোড কম্পাইল করার পর dist ফোল্ডারে আউটপুট দিবে।
১.৫ প্রজেক্টের ফোল্ডার গঠন
একটি সাধারণ ফোল্ডার গঠন হবে:
express-ts-app/
|-- src/
| |-- index.ts
|
|-- dist/ (this will be generated after compilation)
|-- package.json
|-- tsconfig.json
২. Express.js অ্যাপ তৈরি করা
এখন src/index.ts ফাইলে Express অ্যাপ্লিকেশন তৈরি করুন।
import express, { Request, Response } from 'express';
const app = express();
const port = 3000;
// Basic route
app.get('/', (req: Request, res: Response) => {
res.send('Hello, TypeScript with Express!');
});
// Another route
app.get('/greet/:name', (req: Request, res: Response) => {
const name = req.params.name;
res.send(`Hello, ${name}!`);
});
// Start the server
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
এখানে:
expressথেকেRequestএবংResponseটাইপগুলো ইম্পোর্ট করা হয়েছে, যা টাইপ সেফ API তৈরি করতে সাহায্য করবে।- দুটি রুট (
/এবং/greet/:name) ডিফাইন করা হয়েছে, যেখানে টাইপ সেফ রিকোয়েস্ট প্যারামিটার এবং রেসপন্স ব্যবহার করা হয়েছে।
৩. TypeScript কোড রান করা
TypeScript কোড রান করার জন্য আপনি ts-node ব্যবহার করতে পারেন, যাতে TypeScript কোড সরাসরি রান করা যায়।
npx ts-node src/index.ts
এখন আপনি ব্রাউজারে গিয়ে http://localhost:3000 এ গিয়ে অ্যাপটি দেখতে পারবেন।
৪. TypeScript কম্পাইল করে JavaScript আউটপুট করা
আপনি TypeScript কোড কম্পাইল করে JavaScript আউটপুট করতে পারেন। কম্পাইল করতে TypeScript কম্পাইলার ব্যবহার করুন:
npx tsc
এটি src ফোল্ডারের .ts ফাইলগুলোকে dist ফোল্ডারে .js ফাইলে কম্পাইল করবে। এরপর JavaScript ফাইল চালানোর জন্য:
node dist/index.js
৫. কোডের উন্নতি এবং TypeScript এর সুবিধা
৫.১ টাইপ সেফটি
TypeScript ব্যবহার করার মাধ্যমে আপনার কোডে টাইপ সেফটি পাওয়া যায়, যার ফলে ভুল টাইপের ডাটা পাস করা বা রিটার্ন করার সম্ভাবনা কমে যায়। যেমন, যদি আপনি req.params এর মধ্যে ভুল টাইপ ব্যবহার করেন, TypeScript আপনাকে আগে থেকেই সতর্ক করে দেবে।
উদাহরণ:
app.get('/greet/:name', (req: Request, res: Response) => {
// `req.params.name` টাইপ সেফ, এবং যদি এটি সঠিকভাবে ব্যবহার না করা হয়, TypeScript ত্রুটি দেখাবে।
const name: string = req.params.name;
res.send(`Hello, ${name}!`);
});
৫.২ ক্লাস এবং ইন্টারফেস ব্যবহার
TypeScript এর ক্লাস এবং ইন্টারফেস ব্যবহার করে আপনি আরো প্রফেশনাল এবং স্কেলেবল কোড তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনি একটি User ইন্টারফেস তৈরি করতে পারেন যা API রেসপন্সের স্ট্রাকচার ডিফাইন করবে।
উদাহরণ:
interface User {
id: number;
name: string;
email: string;
}
app.get('/user', (req: Request, res: Response) => {
const user: User = {
id: 1,
name: 'John Doe',
email: 'john.doe@example.com',
};
res.json(user);
});
এখানে, User ইন্টারফেসটি user অবজেক্টের স্ট্রাকচার নির্ধারণ করে এবং TypeScript নিশ্চিত করে যে সব প্রপার্টি সঠিকভাবে টাইপ করা হয়েছে।
TypeScript এবং Express.js একত্রিত করা একটি শক্তিশালী সমাধান হতে পারে যেহেতু TypeScript এর টাইপ সেফটি এবং উন্নত ডেভেলপমেন্ট অভিজ্ঞতা Express.js অ্যাপ্লিকেশনগুলিকে আরও নির্ভরযোগ্য এবং স্কেলেবল করে তোলে। TypeScript কোডের ভুল কম করে, এক্সটেনসিবল কোড লিখতে সাহায্য করে, এবং ডেভেলপারদের জন্য একটি উন্নত ডিবাগিং অভিজ্ঞতা প্রদান করে। TypeScript এবং Express.js ব্যবহার করে আপনি সহজেই ক্লিয়ার, রিডেবল এবং সলিড API তৈরি করতে পারবেন।
Read more