Perdóname por mi conocimiento limitado. Mi problema es que he hecho el código de abajo yo mismo. Cuando se trata del correo electrónico, la dirección, el teléfono del validador, ..., no sé cómo manejarlo. He encontrado algunos documentos para leer que no entiendo. ¡Por favor ayúdenme! ¡Muchas gracias!
userService.js
exports.findUserResgiter = async (email) => { var result = null; try{ result = await User.findOne({ email: email, }) } catch(e){} return result; };UserModels.js
const UserShema = new Shema({ name: String, date_of_birth: Date, address: String, phone: String, email: String, password: String }, { collection: 'users' });controlador de usuario.js
exports.register = async (req, res, next)=>{ var email=req.body.email; var password=md5(req.body.password) var name=req.body.name var address=req.body.address var phone=req.body.phone var date_of_birth=req.body.date_of_birth var data = await userService.findUserResgiter(email); console.log(data); if(data === null){ res.status(200).json({message: "null"}); return User.create({ name: name, email: email, password: password, address: address, date_of_birth: date_of_birth, phone: phone, }) }else{ res.status(401).json({message: "This email already exists!"}); }};
Hay un montón de bibliotecas que pueden ayudarte con la validación. Prueba algo como Joi o Superstruct . Aquí hay un ejemplo básico usando Joi ya que es bastante popular:
¿Supongo que estás usando express? Entonces, primero voy a escribir un middleware que verifique el req.body contra un esquema:
export function validateResource(schema) { return (req, res, next) => { try { schema.validate(req.body); //move to next middleware if validation success next(); } catch(err) { //pass to an error handling middleware next(err); //or send bad request status code res.sendStatus(400); } }Luego define tu esquema:
const Joi = require('joi'); const userSchema = Joi.object({ name: Joi.string().required(), email: Joi.string().email().required(), password: Joi.string().required(), //etc.... refer to the docs for other validation methods, there are loads });Usa el middleware así:
//require your userSchema app.post("/some_endpoint", validateResource(userSchema), (req, res, next) => { //at this point in the code, the data is validated }Puede reutilizar el middleware de validateResource con cualquier esquema que defina.