Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

267
Views
'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

over 4 years ago · Santiago Trujillo
1 answers
Answer question

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

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!