members.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. const express = require('express');
  2. const router = express.Router();
  3. const Member = require('../models/Member');
  4. // 获取所有会员
  5. router.get('/', async (req, res) => {
  6. try {
  7. const members = await Member.find();
  8. res.json(members);
  9. } catch (err) {
  10. res.status(500).json({ message: err.message });
  11. }
  12. });
  13. // 添加新会员
  14. router.post('/', async (req, res) => {
  15. const member = new Member({
  16. name: req.body.name,
  17. phone: req.body.phone,
  18. email: req.body.email
  19. });
  20. try {
  21. const newMember = await member.save();
  22. res.status(201).json(newMember);
  23. } catch (err) {
  24. res.status(400).json({ message: err.message });
  25. }
  26. });
  27. // 获取特定会员
  28. router.get('/:id', getMember, (req, res) => {
  29. res.json(res.member);
  30. });
  31. // 更新会员信息
  32. router.patch('/:id', getMember, async (req, res) => {
  33. if (req.body.name != null) {
  34. res.member.name = req.body.name;
  35. }
  36. if (req.body.phone != null) {
  37. res.member.phone = req.body.phone;
  38. }
  39. if (req.body.email != null) {
  40. res.member.email = req.body.email;
  41. }
  42. try {
  43. const updatedMember = await res.member.save();
  44. res.json(updatedMember);
  45. } catch (err) {
  46. res.status(400).json({ message: err.message });
  47. }
  48. });
  49. // 删除会员
  50. router.delete('/:id', getMember, async (req, res) => {
  51. try {
  52. await res.member.remove();
  53. res.json({ message: '会员已删除' });
  54. } catch (err) {
  55. res.status(500).json({ message: err.message });
  56. }
  57. });
  58. async function getMember(req, res, next) {
  59. let member;
  60. try {
  61. member = await Member.findById(req.params.id);
  62. if (member == null) {
  63. return res.status(404).json({ message: '找不到会员' });
  64. }
  65. } catch (err) {
  66. return res.status(500).json({ message: err.message });
  67. }
  68. res.member = member;
  69. next();
  70. }
  71. module.exports = router;