Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Express Documentation22টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Installation
  • Routing
  • Middleware
  • Request & Response
  • Static Files
  • Router
  • Error Handling
  • Template Engines
  • Body Parsing
  • File Upload
  • CORS
  • Database
  • Validation
  • Authentication
  • Security
  • REST API
  • Performance
  • Testing
  • Best Practices
  • Project
  • Interview
  1. Docs
  2. Express
  3. Express Error Handling
ExpressIntermediate

Express Error Handling

404 handling, error middleware, async errors, custom error class — Express বাংলায়।

12টি অংশবাংলা ভাষায়

ভালো API-এর জন্য error handling অপরিহার্য। Express-এ error handling-এর নির্দিষ্ট পদ্ধতি আছে।

404 Not Found Handler

const express = require("express");
const app = express();

// ... সব routes ...

// সব route-এর পরে 404 handle — এই middleware শেষে রাখতে হবে
app.use((req, res) => {
  res.status(404).json({
    success: false,
    message: "এই route পাওয়া যায়নি",
    path: req.originalUrl,
  });
});

Error-handling Middleware

Error middleware সাধারণ middleware-এর মতো, তবে 4টি parameter: (err, req, res, next)। 4 argument-এর উপস্থিতিই একে error handler হিসেবে চিনায়।

// Error handler middleware — শেষে রাখুন
app.use((err, req, res, next) => {
  const status = err.status || 500;
  const message = err.message || "Internal Server Error";

  console.error("❌", err);

  res.status(status).json({
    success: false,
    message,
    stack: process.env.NODE_ENV === "production" ? undefined : err.stack,
  });
});

Custom Error Class

utils/AppError.jsjavascript
javascript
class AppError extends Error {
  constructor(message, status = 500) {
    super(message);
    this.status = status;
    this.name = "AppError";
  }
}

module.exports = AppError;

Async Error Handling

const AppError = require("./utils/AppError");

// ❌ এটা error throw করলেও catch হবে না
app.get("/data", async (req, res, next) => {
  const data = await riskyFunction(); // reject হলে crash!
  res.json(data);
});

// ✅ async wrapper দিয়ে
const asyncHandler = (fn) => (req, res, next) => {
  Promise.resolve(fn(req, res, next)).catch(next);
};

app.get("/data", asyncHandler(async (req, res) => {
  const data = await riskyFunction();
  res.json(data);
}));
try/catch দিয়েjavascript
javascript
app.post("/users", async (req, res, next) => {
  try {
    const user = await createUser(req.body);
    res.status(201).json(user);
  } catch (error) {
    next(new AppError("User তৈরি করা যায়নি", 400));
  }
});
তক্তা

Production-এ stack trace কখনো client-কে দেখাবেন না — এটি sensitive তথ্য। ডেভেলপমেন্ট-এ শুধু দেখান।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরExpress RouterপরেরExpress Template Engines (EJS)
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com