43 lines
1.4 KiB
JavaScript
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' })
|
|
}
|
|
}
|
|
]
|