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

389
Views
Barra de búsqueda usando Express y Node en el modelo MVC

Hice una barra de búsqueda en la página de clientes de mi sitio web y cualquier cadena que ingrese el administrador en la barra de búsqueda se enviará como una solicitud de obtención y, según la entrada, estoy tratando de encontrar todos los datos en MySQL db que contiene el cadena de entrada dentro del campo de nombre completo.

Mi sitio web está construido como modelo MVC, usando Express para mostrar datos y Node.js

este es mi formulario

 <form class="d-flex" method="GET"> <input class="form-control me-2 py-1" type="text" id="search" name="search" placeholder="Search customer name" aria-label="Search" value="<%= %>" /> <button class="btn btn-sm btn-secondary" type="submit">Search</button> </form>

Esta es la ruta en el archivo web.js

 router.get('/customer?search',authentication.handleAuthentication, authadmin.authAdmin,adminController.searchCustomer);

getCustomerByName() dentro de adminServices.js

 let getCustomerByName = (name) => { return new Promise(async (resolve, reject) => { try { let user = await db.User.find({ fullname: name }); if (user) { console.log(user); resolve(user); } else { resolve(user); } } catch (e) { reject(e); } });

};

searchCustomer() dentro de adminController.js

 let searchCustomer = async (req,res,next) =>{ let name = req.params.search; let customer = await adminServices.getCustomerByName(name); return res.render('admin/customer.ejs', { customer: customer, }); }

Intenté req.body.search / req.params.search / req.query pero parece que no puede obtener la entrada. La URL como esta: http://localhost:8080/customer?search=mai . No pude encontrar dónde está el problema porque no se muestra nada en la consola. ¿Hay algún método que pueda probar?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Debe agregar una etiqueta de action al elemento de formulario. Cambie el nombre de la ruta a solo customer y use req.query.search en el controlador.

 router.get('/customer', authentication.handleAuthentication, authadmin.authAdmin, adminController.searchCustomer); let searchCustomer = async(req, res, next) => { let name = req.query.search; // change params to query let customer = await adminServices.getCustomerByName(name); return res.render('admin/customer.ejs', { customer: customer, }); }
 <form class="d-flex" action="/customer" method="GET"> <input class="form-control me-2 py-1" type="text" id="search" name="search" placeholder="Search customer name" aria-label="Search" value="<%= %>" /> <button class="btn btn-sm btn-secondary" type="submit">Search</button> </form>

about 4 years ago · Juan Pablo Isaza 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!