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

391
Vistas
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 Respuestas
Responde la pregunta

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