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-এ ব্যাপকভাবে ব্যবহৃত হয়। আপনার প্রজেক্টের ধরন অনুযায়ী যেকোনোটি ব্যবহার করতে পারেন।
লোড হচ্ছে...
1. Data Validation কী এবং কেন গুরুত্বপূর্ণ?
Data Validation ইনপুট ডাটা সঠিক কিনা তা যাচাই করে, যা security ও data integrity নিশ্চিত করে।
2. Joi ও Express Validator এর পার্থক্য কী?
Joi আলাদা লাইব্রেরি ভিত্তিক schema validation দেয়, আর Express Validator middleware হিসেবে কাজ করে।