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

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

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