Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

142
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda