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

201
Vistas
La función de búsqueda de Mongodb no se ejecuta

Estoy usando reaccionar, nodejs y mongodb. Tengo una barra de búsqueda que envía una solicitud de publicación a una función de búsqueda que luego consulta mongodb y devuelve el resultado. El problema es que la función nunca se ejecuta.

Reaccionar:

 const getData = (searchValue) => { const ourRequest = Axios.CancelToken.source(); async function fetchPost() { try { const response = await Axios.post(`/search`, { params: { searchValue }, cancelToken: ourRequest.token, }); if (response.data) { console.log(response.data); } else { dispatch({ type: 'notFound' }); } } catch (e) { console.log('There was a problem or the request was cancelled.'); } } fetchPost(); };

Expresar:

enrutador.js

apiRouter.post('/search', postController.search);

postController.js

 exports.search = function (req, res) { Post.search(req.body.searchTerm) .then((posts) => { console.log('Hello..'); res.json(posts); }) .catch((e) => { res.json([]); }); };

Publicar.js:

 Post.search = function (searchTerm) { return new Promise(async (resolve, reject) => { if (typeof searchTerm == 'string') { console.log('hello..', searchTerm) // nothing let posts = await Post.reusablePostQuery([ { $match: { $text: { $search: searchTerm } } }, { $sort: { score: { $meta: 'textScore' } } }, ]); resolve(posts); } else { reject(); } }); };

Cuando ingreso una búsqueda, obtengo una respuesta de matriz vacía en la consola de desarrollo.

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

0

Siempre es difícil solucionar preguntas como esta, ya que podría haber un problema en muchos lugares. Pero señalaré algunos que se destacan y espero que lo lleven a la respuesta.

Lo primero que salta a la vista es esto: req.body.searchTerm . Está buscando el término de searchTerm mientras su aplicación React no lo envía. En su lugar, está enviando searchValue como en params: { searchValue } que se traduce en params: { searchValue: searchValue } .

Entonces deberías cambiar 2 cosas en tu código React.

  1. Envíe un cuerpo con su solicitud.
  2. Use la nomenclatura adecuada para que su aplicación de back-end pueda verla.
 const response = await Axios({ method: 'post', url: '/search', data: { searchTerm: searchValue }, cancelToken: ourRequest.token })

Estos cambios, en teoría, deberían resolver su problema.

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