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

260
Visualizações
'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 Respostas
Responde à pergunta

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 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