express-mongo-boilerplate-generator
Version:
A production-ready boilerplate generator for Express.js and MongoDB with service layer architecture and Joi validation
55 lines (52 loc) • 1.34 kB
JavaScript
const Joi = require('joi');
const validate = require('../middleware/validate');
const signupSchema = Joi.object({
name: Joi.string()
.min(2)
.max(50)
.required()
.messages({
'string.empty': 'Name is required',
'string.min': 'Name must be at least 2 characters',
'string.max': 'Name cannot exceed 50 characters'
}),
email: Joi.string()
.email()
.required()
.messages({
'string.empty': 'Email is required',
'string.email': 'Please provide a valid email'
}),
password: Joi.string()
.min(6)
.required()
.messages({
'string.empty': 'Password is required',
'string.min': 'Password must be at least 6 characters'
}),
confirmPassword: Joi.string()
.valid(Joi.ref('password'))
.required()
.messages({
'any.only': 'Passwords do not match',
'string.empty': 'Please confirm your password'
})
});
const loginSchema = Joi.object({
email: Joi.string()
.email()
.required()
.messages({
'string.empty': 'Email is required',
'string.email': 'Please provide a valid email'
}),
password: Joi.string()
.required()
.messages({
'string.empty': 'Password is required'
})
});
module.exports = {
validateSignup: validate(signupSchema),
validateLogin: validate(loginSchema)
};