ExpressJs

⌘K
  1. Home
  2. Docs
  3. ExpressJs
  4. Joi দিয়ে validation...
  5. ২। ইনপুট ভ্যালিডেশন করা (একটি উদাহরণ)

২। ইনপুট ভ্যালিডেশন করা (একটি উদাহরণ)

ধরা যাক, আমাদের একটি রুট আছে যেখানে ব্যবহারকারীর ইনপুটের ভ্যালিডেশন করতে হবে। আমরা Joi দিয়ে একটি নতুন রুট তৈরি করে উদাহরণ দেখবো।

const express = require("express");
const config = require("./config/config");
const Joi = require("joi");

const app = express();

// JSON ডেটা গ্রহণের জন্য express.json() Middleware ব্যবহার করা
app.use(express.json());

// হোম রুট
app.get("/", (req, res) => {
  res.send("Hello World! Joi Validation is working.");
});

// POST রুট যেখানে request.body থেকে ইনপুট গ্রহণ ও ভ্যালিডেশন করা হচ্ছে
app.post("/api/data", (req, res) => {
  // Joi স্কিমা তৈরি করে ইনপুটের কাঠামো এবং ভ্যালিডেশন নিয়ম নির্ধারণ করা
  const schema = Joi.object({
    name: Joi.string().min(3).required(),
    age: Joi.number().integer().min(0).required(),
    email: Joi.string().email().required(),
  });

  // request.body তে ভ্যালিডেশন করা
  const { error } = schema.validate(req.body);

  // যদি ভ্যালিডেশন ব্যর্থ হয়, তাহলে ত্রুটি মেসেজ সহ রেসপন্স ফেরত দেওয়া
  if (error) {
    return res.status(400).send(error.details[0].message);
  }

  // যদি ভ্যালিডেশন সফল হয়, তাহলে সফল মেসেজ রিটার্ন করা
  res.send("Data is valid!");
});

// সার্ভার চালু করা
app.listen(config.port, () => {
  console.log(`Server is running on port ${config.port}`);
});

কীভাবে কাজ করে

  1. express.json() Middleware:
    • app.use(express.json()) Middleware ব্যবহার করে request.body তে JSON ডেটা পড়া সম্ভব হয়।
  2. schema.validate(req.body):
    • Joi দিয়ে তৈরি স্কিমার সাহায্যে আমরা request.body এর ডেটা যাচাই (ভ্যালিডেশন) করি।
    • যদি কোনো ইনপুট ভ্যালিডেশন পাস না করে, error অবজেক্টে ত্রুটি বার্তা পাওয়া যাবে।
  3. Response:
    • যদি ভ্যালিডেশন সফল হয়, তাহলে আমরা “Data is valid!” মেসেজ পাঠাচ্ছি।
    • যদি ভ্যালিডেশন ব্যর্থ হয়, তাহলে আমরা ৪০০ স্ট্যাটাস কোড এবং ত্রুটি মেসেজ সহ রেসপন্স পাঠাচ্ছি।

How can we help?