Form Validation এবং Custom Validation

Form Handling এবং Validation - এক্সপ্রেসজেএস (ExpressJS) - Web Development

226

Form validation এবং custom validation ExpressJS-এ গুরুত্বপূর্ণ বিষয়, বিশেষ করে যখন আপনি ব্যবহারকারীর ইনপুট গ্রহণ করেন। ডেটা ভ্যালিডেশন ব্যবহারকারীর পাঠানো ডেটা সঠিক এবং নিরাপদ কিনা তা যাচাই করতে সাহায্য করে। ExpressJS সরাসরি ভ্যালিডেশন সরবরাহ না করলেও, আপনি কিছু প্যাকেজ ব্যবহার করে বা নিজস্ব কাস্টম ভ্যালিডেশন তৈরি করে ফর্ম ভ্যালিডেশন বাস্তবায়ন করতে পারেন।


১. Form Validation

Form validation মূলত ব্যবহারকারীর ফর্ম ইনপুট যাচাই করার একটি প্রক্রিয়া। এটি নিশ্চিত করে যে, ব্যবহারকারী যা ইনপুট করছে তা সঠিক এবং প্রত্যাশিত ফরম্যাটে রয়েছে।

ExpressJS-এ ফর্ম ভ্যালিডেশন করতে সাধারণত নিচের দুটি পদ্ধতি ব্যবহার করা হয়:

  1. এনড-পয়েন্টে ভ্যালিডেশন (Server-side validation)
  2. প্যাকেজ ব্যবহার করা (যেমন: express-validator)

২. Server-side Validation (ExpressJS)

ExpressJS-এ, আপনি ইনপুট ভ্যালিডেশন করতে middleware ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যখন ব্যবহারকারী একটি ফর্ম সাবমিট করে, তখন সেই ইনপুটগুলো যাচাই করার জন্য একটি middleware তৈরি করা হয়।

২.১. একটি সাধারণ POST রিকোয়েস্টের জন্য ফর্ম ভ্যালিডেশন

ধরি, একটি ফর্মে নাম এবং ইমেইল ইনপুট ফিল্ড রয়েছে। আমরা চাই যে, নামটি ফাঁকা না থাকে এবং ইমেইলটি সঠিক ফরম্যাটে দেওয়া হোক।

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const { check, validationResult } = require('express-validator');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// ফর্ম পেজ
app.get('/', (req, res) => {
  res.send('<form action="/submit" method="POST"><input name="name"/><input name="email"/><button type="submit">Submit</button></form>');
});

// ফর্ম সাবমিট করার সময় ইনপুট ভ্যালিডেশন
app.post('/submit', [
  check('name').notEmpty().withMessage('Name is required'), // নাম ফাঁকা থাকতে পারবে না
  check('email').isEmail().withMessage('Invalid email format') // ইমেইল সঠিক ফরম্যাটে হতে হবে
], (req, res) => {
  const errors = validationResult(req);
  
  if (!errors.isEmpty()) {
    return res.status(400).json({ errors: errors.array() });
  }

  // ফর্ম ডেটা সফলভাবে পাওয়া গেছে
  res.send('Form submitted successfully!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

ব্যাখ্যা:

  • check('name'): নাম ইনপুট চেক করবে। notEmpty() ফাংশনটি চেক করে যে এটি ফাঁকা না থাকে।
  • check('email'): ইমেইল ইনপুট চেক করবে। isEmail() ফাংশনটি নিশ্চিত করে যে এটি সঠিক ইমেইল ফরম্যাটে রয়েছে।
  • validationResult(req): রিকোয়েস্টের মাধ্যমে যে ইনপুট আসছে, তার মধ্যে কোনো ত্রুটি আছে কিনা তা যাচাই করা হয়।
  • যদি কোনো ত্রুটি থাকে, তবে ত্রুটি বার্তা 400 স্ট্যাটাস কোড সহ ফেরত পাঠানো হয়।

৩. express-validator প্যাকেজ ব্যবহার করা

ExpressJS-এ express-validator প্যাকেজ ব্যবহার করে ইনপুট ভ্যালিডেশন অনেক সহজ হয়। এটি একাধিক বিল্ট-ইন ভ্যালিডেশন ফাংশন প্রদান করে, যেমন isEmail(), isLength(), isNumeric() ইত্যাদি।

৩.১. express-validator ইনস্টল করা

প্রথমে express-validator প্যাকেজ ইনস্টল করতে হবে:

npm install express-validator

৩.২. express-validator ব্যবহার করে ফর্ম ভ্যালিডেশন

const express = require('express');
const { check, validationResult } = require('express-validator');
const app = express();

app.use(express.urlencoded({ extended: false }));

// ফর্ম পেজ
app.get('/', (req, res) => {
  res.send('<form action="/submit" method="POST"><input name="name"/><input name="email"/><button type="submit">Submit</button></form>');
});

// POST রিকোয়েস্টের জন্য ভ্যালিডেশন
app.post('/submit', [
  check('name').notEmpty().withMessage('Name is required'),
  check('email').isEmail().withMessage('Please provide a valid email')
], (req, res) => {
  const errors = validationResult(req);

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

  res.send('Form submitted successfully!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

এই উদাহরণে, express-validator ব্যবহার করে check() এবং validationResult() ফাংশনগুলোর মাধ্যমে ভ্যালিডেশন সম্পন্ন হচ্ছে।


৪. Custom Validation

Custom validation এমন ক্ষেত্রগুলিতে ব্যবহার করা হয় যখন আপনি কোনও নির্দিষ্ট নিয়ম বা কন্ডিশন অনুযায়ী ইনপুট যাচাই করতে চান।

৪.১. Custom Validation উদাহরণ

ধরি, আপনি চাইছেন যে একটি ফর্ম ইনপুটের বয়সটি ১৮ বছরের বেশি হতে হবে।

const { check, validationResult } = require('express-validator');

app.post('/submit', [
  check('age').custom(value => {
    if (parseInt(value) < 18) {
      throw new Error('Age must be 18 or older');
    }
    return true;
  })
], (req, res) => {
  const errors = validationResult(req);
  
  if (!errors.isEmpty()) {
    return res.status(400).json({ errors: errors.array() });
  }

  res.send('Form submitted successfully!');
});

ব্যাখ্যা:

  • check('age'): ইনপুট চেক করে, এবং custom() ফাংশনের মধ্যে একটি কাস্টম ভ্যালিডেশন রুল লেখা হয়।
  • throw new Error(): যদি কাস্টম চেক ব্যর্থ হয়, তাহলে একটি ত্রুটি মেসেজ পাঠানো হয়।

৫. Error Handling এবং User Feedback

ভ্যালিডেশন একাধিক ক্ষেত্রের জন্য হতে পারে এবং এর মধ্যে যদি কোনো ত্রুটি ঘটে, তবে ব্যবহারকারীকে এটি জানানো প্রয়োজন। আপনাকে ত্রুটির সঠিক মেসেজ দেখানোর জন্য একটি উপযুক্ত error-handling ব্যবস্থা গড়ে তুলতে হবে।

app.post('/submit', [
  check('name').notEmpty().withMessage('Name is required'),
  check('email').isEmail().withMessage('Please provide a valid email')
], (req, res) => {
  const errors = validationResult(req);
  
  if (!errors.isEmpty()) {
    return res.status(400).json({ errors: errors.array() });
  }

  res.send('Form submitted successfully!');
});

এখানে, যদি ইনপুটের মধ্যে কোনো ভুল থাকে, তাহলে errors.array() ব্যবহার করে সমস্ত ত্রুটি মেসেজ ফেরত দেওয়া হয়।


সারাংশ

ExpressJS-এ form validation এবং custom validation নিশ্চিত করে যে ব্যবহারকারীর ইনপুট সঠিক এবং নিরাপদ। আপনি express-validator প্যাকেজ ব্যবহার করে সহজেই ভ্যালিডেশন করতে পারেন এবং কাস্টম চেকিংয়ের মাধ্যমে নিজের নির্দিষ্ট নিয়ম তৈরি করতে পারেন। সার্ভার সাইড ভ্যালিডেশন ব্যবহারকারীর ইনপুট যাচাই করার একটি গুরুত্বপূর্ণ অংশ এবং এটি সুরক্ষিত অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...