যেহেতু আমাদের এই প্রজেক্ট টি একটি কমপ্লিট লাইব্রেরি ম্যানেজমেন্ট করবে তাই এর আরো অনেক ফিচার দরকার যার মধ্যে একটি মেম্বারশিপ ফিচার যার মাদ্ধমে আমরা মেম্বার যোগ করতে পারবো।
আমাদের মডেল ফাইলে মেম্বার স্কিমা যোগ করি এজন্য মডেল ফাইল ওপেন করে নিচের কোড লিখি।
//models.js
// Define the schema for library members
const memberSchema = new mongoose.Schema({
name: { type: String, required: true },
phone: { type: String, unique: true},
email: { type: String, unique: true, required: true },
// Other member-related fields can be added as needed
});
const Member = mongoose.model('Member', memberSchema );
module.exports = { Author, Book , Member};
routes.js ফাইলটি আপডেট করি
const { Author, Book,Member } = require('./models');
// Create a new member
router.post('/members', async (req, res) => {
try {
const { name, email } = req.body;
const newMember = new Member({ name, email });
const savedMember = await newMember.save();
res.json(savedMember);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to create member' });
}
});
// Get all members
router.get('/members', async (req, res) => {
try {
const members = await Member.find();
res.json(members);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to retrieve members' });
}
});
// Get a member by ID
router.get('/members/:id', async (req, res) => {
try {
const memberId = req.params.id;
const member = await Member.findById(memberId);
if (!member) {
return res.status(404).json({ error: 'Member not found' });
}
res.json(member);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to find member' });
}
});
// Update a member by ID
router.put('/members/:id', async (req, res) => {
try {
const memberId = req.params.id;
const { name, email } = req.body;
const updatedMember = await Member.findByIdAndUpdate(
memberId,
{ name, email },
{ new: true }
);
if (!updatedMember) {
return res.status(404).json({ error: 'Member not found' });
}
res.json(updatedMember);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to update member' });
}
});
// Delete a member by ID
router.delete('/members/:id', async (req, res) => {
try {
const memberId = req.params.id;
const deletedMember = await Member.findByIdAndDelete(memberId);
if (!deletedMember) {
return res.status(404).json({ error: 'Member not found' });
}
res.json({ message: 'Member deleted successfully' });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to delete member' });
}
});
Check By Postman
