1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| const express = require('express'); const { body, validationResult } = require('express-validator');
const app = express(); app.use(express.json());
let users = [];
app.get('/users', (req, res) => { res.json({ success: true, data: users, count: users.length }); });
app.post('/users', [ body('name').notEmpty().withMessage('姓名不能为空'), body('email').isEmail().withMessage('邮箱格式不正确') ], (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ success: false, errors: errors.array() }); }
const user = { id: Date.now().toString(), name: req.body.name, email: req.body.email, createdAt: new Date() };
users.push(user); res.status(201).json({ success: true, data: user }); } );
app.put('/users/:id', [ body('name').optional().notEmpty(), body('email').optional().isEmail() ], (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ success: false, errors: errors.array() }); }
const userIndex = users.findIndex(u => u.id === req.params.id); if (userIndex === -1) { return res.status(404).json({ success: false, message: '用户不存在' }); }
users[userIndex] = { ...users[userIndex], ...req.body, updatedAt: new Date() };
res.json({ success: true, data: users[userIndex] }); } );
app.delete('/users/:id', (req, res) => { const userIndex = users.findIndex(u => u.id === req.params.id); if (userIndex === -1) { return res.status(404).json({ success: false, message: '用户不存在' }); }
users.splice(userIndex, 1); res.json({ success: true, message: '删除成功' }); });
app.listen(3000, () => { console.log('Server running on port 3000'); });
|