Data Validation (Joi / Express Validator)

Data Validation (Joi / Express Validator)

Express.js-এ ইনপুট ডাটা সঠিকভাবে যাচাই করার সম্পূর্ণ গাইড

Data Validation কেন প্রয়োজন?

যেকোনো Backend সিস্টেমে ইনপুট ডাটার সঠিকতা নিশ্চিত করা খুব গুরুত্বপূর্ণ। যদি User ভুল ডাটা পাঠায়, যেমন— ভুল ইমেইল, ফাঁকা ফিল্ড, ভুল টাইপের ভ্যালু তাহলে সিস্টেম ভেঙে যেতে পারে অথবা সিকিউরিটি সমস্যা তৈরি হতে পারে।

Express.js-এ ডাটা Validation করার জন্য দুটি জনপ্রিয় লাইব্রেরি হলো:

  • Joi – Powerful schema-based validation
  • Express Validator – Middleware-based validation

১. Joi দিয়ে Data Validation

Joi ইন্সটলেশন

npm install joi
        

Joi Schema তৈরি

ধরুন আমরা একটি User Registration API তৈরি করছি।

const Joi = require("joi");

const userSchema = Joi.object({
    name: Joi.string().min(3).max(30).required(),
    email: Joi.string().email().required(),
    password: Joi.string().min(6).required(),
    age: Joi.number().min(18).max(60)
});
        

Express Route-এ Joi Validation

app.post("/register", async (req, res) => {
    try {
        const value = await userSchema.validateAsync(req.body);
        res.json({ message: "User registration successful", data: value });
    } catch (err) {
        res.status(400).json({ error: err.details[0].message });
    }
});
        

Joi Validation-এর সুবিধা

  • Schema খুব readable এবং maintainable
  • Strong type checking
  • Async validation support
  • Custom validation rules তৈরি করা যায়

২. Express Validator দিয়ে Validation

Express Validator ইন্সটলেশন

npm install express-validator
        

Route-এ ব্যবহার

const { body, validationResult } = require("express-validator");

app.post("/login", 
[
    body("email").isEmail().withMessage("Valid email required"),
    body("password").isLength({ min: 6 }).withMessage("Password must be 6 characters")
],
(req, res) => {
    const errors = validationResult(req);

    if (!errors.isEmpty()) {
        return res.status(400).json({ errors: errors.array() });
    }

    res.json({ message: "Login successful" });
});
        

Express Validator-এর সুবিধা

  • Middleware-based validation
  • Sanitization + Validation একসাথে
  • Form handling সিস্টেমে খুব জনপ্রিয়
  • Express ecosystem-এর সাথে perfect fit

৩. Joi বনাম Express Validator

Joi Express Validator
Schema-based validation Middleware-based validation
Complex validation easier Form validation-friendly
Better readability Direct integration with Express
Async validation supported Sanitization built-in

৪. Best Practices

  • সবসময় Input Validation Server-side এ করতে হবে
  • ত্রুটি বার্তা user-friendly রাখা উচিত
  • Validation logic আলাদা folder বা file-এ রাখা উচিত
  • XSS, SQL Injection প্রতিরোধে Validation অত্যন্ত গুরুত্বপূর্ণ

উপসংহার

Data Validation ওয়েব অ্যাপ্লিকেশন সিকিউরিটির একটি গুরুত্বপূর্ণ অংশ। Joi এবং Express Validator দুটোই শক্তিশালী টুল এবং API Validation-এ ব্যাপকভাবে ব্যবহৃত হয়। আপনার প্রজেক্টের ধরন অনুযায়ী যেকোনোটি ব্যবহার করতে পারেন।

👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Data Validation কী এবং কেন গুরুত্বপূর্ণ?

Data Validation ইনপুট ডাটা সঠিক কিনা তা যাচাই করে, যা security ও data integrity নিশ্চিত করে।

2. Joi ও Express Validator এর পার্থক্য কী?

Joi আলাদা লাইব্রেরি ভিত্তিক schema validation দেয়, আর Express Validator middleware হিসেবে কাজ করে।