expressServer/controllers/userController.js

43 lines
1.4 KiB
JavaScript

const { body, validationResult } = require('express-validator')
const userService = require('../services/userService')
const errorMessages = require('../config/errorMessages')
exports.getAllUsers = async (req, res) => {
try {
const users = await userService.user_list()
res.json(users)
} catch (err) {
res.status(500).json({ error: err.message })
}
}
exports.createUser = [
body('account').isLength({ min: 3 }).withMessage('Account must be at least 3 characters long'),
body('password').isLength({ min: 6 }).withMessage('Password must be at least 6 characters long'),
async (req, res, next) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
const formattedErrors = errors.array().map((err) => ({
field: err.path, // 错误字段名
message: err.msg // 错误提示消息
}))
return res.status(400).json({ errors: formattedErrors })
}
next()
},
async (req, res) => {
try {
const user = req.body
await userService.create_user(user)
res.status(201).json({ message: errorMessages.user.created })
} catch (err) {
if (err.message === errorMessages.user.already_exists) {
return res.status(400).json({ error: err.message })
}
logger('Error creating user: ', err)
return res.status(500).json({ error: 'Internal server error' })
}
}
]