• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

171
Views
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 3 years ago · Santiago Trujillo
1 answers
Answer question

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 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error