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

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

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