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

254
Vistas
'null' pasó a la consulta de Mongoose 'findOne ()'

Me encuentro con un problema que parece que no puedo resolver durante las últimas horas. Hagámoslo.

Actualmente usando la versión más reciente de express y mongoose

Tengo la siguiente ruta con la consulta en mi route.js:

 Note .findOne({"user": req.body.user, "title": req.body.title, "subtitle": req.body.subtitle}) .exec(function (err, note) { if (err) {handleError(err)}; console.log(note._id); }) //same implementation as the in the mongoose docs

Luego, tengo un script del lado del cliente con la siguiente solicitud ajax:

 let settings = { type: 'GET', url: 'http://localhost:8080/note', data: { "user": userId, "title": noteTitle, "subtitle": noteSubtitle }, dataType: "json", success: renderGetNoteTemplate } return $.ajax(settings);

Ahora el problema es que, incluso cuando existe un documento en la base de datos y la colección correcta, el resultado de la consulta es nulo. Y después de horas de leer hilos en este sitio y también iniciar sesión en la consola, ¡decidí registrar la consulta en la consola y vi esto!

_conditions: { subtitle: null, title: null, user: null }

Entonces, la condición que se pasa es nula, lo que obviamente devolverá nulo. Ahora, aquí está el truco. Las consultas funcionan con condiciones como:

Note.findById(req.cookies.note).exec()

La diferencia que pude ver allí es que la solicitud no proviene del cuerpo. Así que arriba envié las condiciones a través de la solicitud de ajax con algo como

{"title": req.body.title}

Por último, cuando imprimo req.body.title, etc. en la consola sin pasarlo a la consulta, aparecen los valores. Entonces, por ejemplo, paso Romeo y Julieta como el título de la nota, cuando lo imprimo en la consola del servidor, obtengo el valor Romeo y Julieta. Tan pronto como lo paso a la consulta como condición, surge el problema.

He buscado literalmente en todas partes, especialmente en la forma en que nombré mis modelos, etc. Nuevamente, cuando paso el argumento req.body a la condición, obtengo el resultado nulo.

También en aras de la brevedad, no incluí en el código que he requerido bodyParser y, de nuevo, los valores aparecen cuando no entran en la condición de consulta.

¿Alguna idea de qué hace que estos argumentos se vuelvan nulos?

Gracias

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Debería ser req.query en lugar de req.body o req.params porque es una solicitud GET .

GET /note?user=some&title=some&subtitle=some

https://expressjs.com/en/api.html#req.consulta

about 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