Node.jsBeginner
Node.js Modules (মডিউল)
CommonJS, ESM, require/import, module.exports — Node.js-এ কোড সংগঠনের সম্পূর্ণ বাংলা গাইড।
19টি অংশবাংলা ভাষায়
Module হলো Node.js-এ কোডকে ছোট ছোট, পুনঃব্যবহারযোগ্য অংশে ভাগ করার পদ্ধতি। প্রতিটি JavaScript ফাইল একটি module।
Module কেন দরকার?
- কোড reusable হয় — একবার লেখা, অনেক জায়গায় ব্যবহার
- Codebase organized থাকে — ছোট ছোট ফাইলে ভাগ
- Namespace conflict হয় না — প্রতিটি module এর own scope
- Maintainability বাড়ে — একটি ফাইল পরিবর্তনে অন্য ফাইলে প্রভাব কম
CommonJS Modules (require)
Node.js-এর পুরোনো ও classic module system। require() দিয়ে import, module.exports দিয়ে export করা হয়।
math.jsjavascript
javascript
// Export করা
const add = (a, b) => a + b;
const subtract = (a, b) => a - b;
const multiply = (a, b) => a * b;
module.exports = { add, subtract, multiply };app.jsjavascript
javascript
// Import করা
const math = require("./math");
console.log(math.add(5, 3)); // 8
console.log(math.subtract(10, 4)); // 6
console.log(math.multiply(3, 7)); // 21ES Modules (import/export)
JavaScript-এর modern module system। Node.js 14+ থেকে সমর্থিত। package.json-এ "type": "module" বা .mjs extension প্রয়োজন।
utils.mjsjavascript
javascript
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
// default export
export default class Calculator {
add(a, b) { return a + b; }
}app.mjsjavascript
javascript
import Calculator, { add, subtract } from "./utils.mjs";
const calc = new Calculator();
console.log(calc.add(10, 5)); // 15
console.log(add(3, 4)); // 7Built-in Modules
Node.js অনেক built-in modules সরবরাহ করে যেগুলো install ছাড়াই ব্যবহার করা যায়:
| Module | কাজ |
|---|---|
| fs | ফাইল সিস্টেম (পড়া, লেখা, মুছে ফেলা) |
| path | ফাইল পাথ ম্যানেজমেন্ট |
| http | HTTP সার্ভার ও ক্লায়েন্ট |
| os | অপারেটিং সিস্টেম সম্পর্কিত তথ্য |
| crypto | ক্রিপ্টোগ্রাফিক অপারেশন |
| events | Event Emitter pattern |
| stream | Stream processing |
| url | URL parsing |
| querystring | Query string parsing |
const os = require("node:os");
const path = require("node:path");
console.log(os.platform()); // "win32", "linux", "darwin"
console.log(os.cpus().length); // CPU core সংখ্যা
console.log(os.totalmem()); // মোট memory
console.log(__filename); // বর্তমান ফাইলের পাথ
console.log(__dirname); // বর্তমান directory
console.log(path.extname("app.js")); // ".js"CommonJS বনাম ESM
| বৈশিষ্ট্য | CommonJS | ESM |
|---|---|---|
| Syntax | require() / module.exports | import / export |
| Loading | Synchronous | Asynchronous |
| Tree Shaking | সম্ভব নয় | সম্ভব |
| Extension | .js (default) | .mjs বা type:module |
| Dynamic import | require() দিয়ে | import() দিয়ে |
Dynamic import (ESM)javascript
javascript
// runtime-ে condition অনুযায়ী import
if (process.env.NODE_ENV === "production") {
const logger = await import("./prod-logger.mjs");
logger.log("Production mode");
} else {
const logger = await import("./dev-logger.mjs");
logger.log("Development mode");
}নতুন project-এর জন্য
নতুন project-এ ESM (import/export) ব্যবহার করুন। এটি modern JavaScript standard এবং tree-shaking support করে।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।