|
|
@@ -0,0 +1,80 @@
|
|
|
+const express = require('express');
|
|
|
+const router = express.Router();
|
|
|
+const Member = require('../models/Member');
|
|
|
+
|
|
|
+// 获取所有会员
|
|
|
+router.get('/', async (req, res) => {
|
|
|
+ try {
|
|
|
+ const members = await Member.find();
|
|
|
+ res.json(members);
|
|
|
+ } catch (err) {
|
|
|
+ res.status(500).json({ message: err.message });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 添加新会员
|
|
|
+router.post('/', async (req, res) => {
|
|
|
+ const member = new Member({
|
|
|
+ name: req.body.name,
|
|
|
+ phone: req.body.phone,
|
|
|
+ email: req.body.email
|
|
|
+ });
|
|
|
+
|
|
|
+ try {
|
|
|
+ const newMember = await member.save();
|
|
|
+ res.status(201).json(newMember);
|
|
|
+ } catch (err) {
|
|
|
+ res.status(400).json({ message: err.message });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 获取特定会员
|
|
|
+router.get('/:id', getMember, (req, res) => {
|
|
|
+ res.json(res.member);
|
|
|
+});
|
|
|
+
|
|
|
+// 更新会员信息
|
|
|
+router.patch('/:id', getMember, async (req, res) => {
|
|
|
+ if (req.body.name != null) {
|
|
|
+ res.member.name = req.body.name;
|
|
|
+ }
|
|
|
+ if (req.body.phone != null) {
|
|
|
+ res.member.phone = req.body.phone;
|
|
|
+ }
|
|
|
+ if (req.body.email != null) {
|
|
|
+ res.member.email = req.body.email;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ const updatedMember = await res.member.save();
|
|
|
+ res.json(updatedMember);
|
|
|
+ } catch (err) {
|
|
|
+ res.status(400).json({ message: err.message });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 删除会员
|
|
|
+router.delete('/:id', getMember, async (req, res) => {
|
|
|
+ try {
|
|
|
+ await res.member.remove();
|
|
|
+ res.json({ message: '会员已删除' });
|
|
|
+ } catch (err) {
|
|
|
+ res.status(500).json({ message: err.message });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+async function getMember(req, res, next) {
|
|
|
+ let member;
|
|
|
+ try {
|
|
|
+ member = await Member.findById(req.params.id);
|
|
|
+ if (member == null) {
|
|
|
+ return res.status(404).json({ message: '找不到会员' });
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ return res.status(500).json({ message: err.message });
|
|
|
+ }
|
|
|
+
|
|
|
+ res.member = member;
|
|
|
+ next();
|
|
|
+}
|
|
|
+
|
|
|
+module.exports = router;
|