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);
এখানে:
IUser: এটি
Document
ইন্টারফেসের একটি এক্সটেনশন যা MongoDB ডকুমেন্টের সঠিক টাইপ নির্ধারণ করে।-
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:
Model: Mongoose মডেলটির টাইপ।
-
Document: MongoDB ডকুমেন্ট টাইপ।
-
Router: Express.js রাউটারের টাইপ।
এভাবে তুমি Mongoose-এর টাইপগুলো সঠিকভাবে ব্যবহার করতে পারবে।