Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

145
Visualizações
Express - Mongoose - ¿Cómo agregar datos de usuario a la solicitud POST al enviar un formulario?

Soy nuevo en Mongoose y NodeJS y estoy creando un sistema de gestión de tickets en el que los usuarios registrados pueden completar un formulario para crear un ticket. Tiene dos campos (título y descripción), pero al enviarlo, también me gustaría agregar algunos datos del usuario al objeto de datos del formulario.

En la interfaz, estoy usando React con Formik para manejar el formulario. Mi objeto de datos de usuario se almacena en el almacenamiento local usando JWT.

Aquí están mis modelos actuales para el billete y para el usuario:

 //ticket.model.js module.exports = (mongoose) => { const Ticket = mongoose.model( 'ticket', mongoose.Schema( { title: String, description: String, }, { timestamps: true } ) ); return Ticket; }; //user.model.js const User = mongoose.model( 'User', new mongoose.Schema({ firstName: String, lastName: String, email: String, password: String, roles: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Role', }, ], }) ); module.exports = User;

Aquí está la función Formik:

 const formik = useFormik({ initialValues: { title: '', description: '', }, validationSchema, validateOnBlur: false, validateOnChange: false, onSubmit: (data) => { TicketService.create(data).then(() => { navigate('/home'); window.location.reload(); }); }, });

Idealmente, cuando se crea el ticket, me gustaría consultar a Mongoose con el ObjectId del usuario para recuperar su nombre y apellido. Si es demasiado complicado, no me importa simplemente agregar los nombres de los usuarios a los datos del formulario usando JSON.parse(localStorage.getItem('user')). O si tiene mejores prácticas, hágamelo saber.

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No importa, a mi objeto formik en realidad le faltaba el elemento de usuario (ver más abajo).

 const formik = useFormik({ initialValues: { title: '', description: '', authorId: JSON.parse(localStorage.getItem('user')).id, authorName: `${JSON.parse(localStorage.getItem('user')).firstName} ${ JSON.parse(localStorage.getItem('user')).lastName }`, }, validationSchema, validateOnBlur: false, validateOnChange: false, onSubmit: (data) => { console.log(data); TicketService.create(data).then(() => { navigate('/home'); window.location.reload(); }); }, });

A partir de ahí, actualicé mi modelo y controlador en consecuencia:

 module.exports = (mongoose) => { const Ticket = mongoose.model( 'ticket', mongoose.Schema( { title: String, description: String, authorId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', }, authorName: String, }, { timestamps: true } ) ); return Ticket; };
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda