Header Ads

Header ADS

Routing and Mongoose

 Mongoose এর Router এর মতো, যখন তুমি Mongoose দিয়ে একটি মডেল তৈরি করো, তখন তার টাইপও নির্দিষ্ট করতে হয়। Mongoose-এর ডেটা টাইপগুলো কিছুটা ভিন্ন এবং এখানে MongoDB-এর ডেটাবেস মডেল এবং ডকুমেন্ট সম্পর্কিত টাইপ ব্যবহার করা হয়।

যেমন:

১. Mongoose Model:

যখন তুমি Mongoose মডেল তৈরি করো, তখন তার টাইপ হবে Model<T>, যেখানে T হল ডেটা টাইপ যা মডেলটিতে ব্যবহৃত হয়।

import mongoose, { Schema, Document, Model } from 'mongoose';

// Interface for the document type
interface IUser extends Document {
    name: string;
    email: string;
    password: string;
}

// Define the schema
const userSchema = new Schema<IUser>({
    name: { type: String, required: true },
    email: { type: String, required: true, unique: true },
    password: { type: String, required: true }
});

// Define the model with the schema
const User: Model<IUser> = mongoose.model<IUser>('User', userSchema);

এখানে:

  1. IUser: এটি Document ইন্টারফেসের একটি এক্সটেনশন যা MongoDB ডকুমেন্টের সঠিক টাইপ নির্ধারণ করে।

  2. User: Model<IUser> টাইপের মডেল, যা MongoDB-তে User ডকুমেন্টের জন্য টাইপ-সুরক্ষিত অপারেশনগুলো পরিচালনা করে।

২. Mongoose Document:

Document হল একটি টাইপ যা MongoDB ডকুমেন্টের মধ্যে পাবে, এবং এটি Model এর মধ্যে থাকে।

const newUser: IUser = await User.create({
    name: 'Ali',
    email: 'ali@example.com',
    password: 'securepassword'
});

৩. Type for userRoute (if you're working with Mongoose in routes):

যদি তুমি Mongoose ব্যবহার করে Express.js রাউট তৈরি করো, তাহলে userRoute এর টাইপ Router হবে, যেমন নিচে:

import { Router } from 'express';
import { IUser } from './models/User'; // User model import

let userRoute: Router = Router();

userRoute.post('/register', async (req, res) => {
    const { name, email, password }: IUser = req.body;

    try {
        const newUser = await User.create({ name, email, password });
        res.status(201).json({ status: 'User created', data: newUser });
    } catch (error) {
        res.status(500).json({ status: 'Error', error: error.message });
    }
});

এখানে userRoute এর টাইপ Router এবং User.create মডেলটির মাধ্যমে Mongoose টাইপিং নিশ্চিত করা হয়েছে।

Summary:

  1. Model: Mongoose মডেলটির টাইপ।

  2. Document: MongoDB ডকুমেন্ট টাইপ।

  3. Router: Express.js রাউটারের টাইপ।

এভাবে তুমি Mongoose-এর টাইপগুলো সঠিকভাবে ব্যবহার করতে পারবে।

Powered by Blogger.