es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo comprobar si la información proporcionada está en un esquema diferente.

En la página de registro, quiero verificar si el correo electrónico, el nombre y el apellido ingresados por el usuario están en el esquema de la organización o no. Si están en la base de datos, entonces se crea un nuevo usuario.

mi esquema de usuario:

const UserSchema = new mongoose.Schema(
{
organization: {
type: mongoose.Schema.Types.ObjectId,
ref: ‘Organization’
},
firstName: {
type: String,
required: [true, “Primer nombre es requerido”],
},
lastName: {
type: String,
required: [true, “Apellido es requerido”],
},
email: {
type: String,
required: [true, “Correo electrónico es requerido”],
validate: {
validator: (val) => /^([\w-.]+@([\w-]+.)+[\w-]+)?$/.test(val),
message: “Por favor ingrese un correo electrónico válido”,
},
},
password: {
type: String,
required: [true, “Contraseña es requerida”],
minlength: [8, “La contraseña debe tener 8 caracteres o más”],
},
},
{ timestamps: true }
)

esquema de organización:

const OrganizationSchema = mongoose.Schema({
orgname: {
type: String
},
domain: {
type: String
},
users: [{
type: mongoose.Schema.Types.ObjectId,
ref: ‘User’ }
],
timestamp: {
type: Date,
default: Date.now
},
})

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el método findOne() para comprobar si el correo electrónico, el nombre y el apellido introducidos por el usuario se encuentran en el esquema de la organización. Si es así, puede crear un nuevo usuario con el método create().

    Ejemplo:

    Organization.findOne({
      email: req.body.email,
      firstName: req.body.firstName,
      lastName: req.body.lastName
    }, (err, user) => {
      if (err) {
        // gestionar el error
      } else if (user) {
        // crear nuevo usuario
        User.create({
          organization: user.organization,
          firstName: req.body.firstName,
          lastName: req.body.lastName,
          email: req.body.email,
          password: req.body.password
        }, (err, user) => {
          if (err) {
            // gestionar el error
          } else {
            // usuario creado
          }
        });
      } else {
        // usuario no encontrado
      }
    });
    

Comments are closed.