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

174
Visualizações
Express api con condiciones en los parámetros de consulta

Estoy trabajando en express Api con mongoose para crear get Api para mi proyecto. Pude hacer una llamada con éxito. Pero no estoy seguro de cómo hacer una API para ordenar datos por diferentes campos ingrese la descripción de la imagen aquí

Modelo

 id, productName, costPrice, soldPrice
 router.get("/sellProduct", (req, res, next) => { // condition if(req.query.product){ Product.find({prodName:req.query.product} ).then(data => { if (data) { res.status(200).send(data) } }) } // WHAT SHOULD BE THE SORT LOGIC TO SORT BY DIFF FIELD else if(req.query.sortBy){ Product.find({}).sort().then(data => { if (data) { res.status(200).send(data) } }) } else{ Product.find().then(data => { if (data) { res.status(200).send(data) } }) } });

Soy beigneer y estoy haciendo mi mejor esfuerzo, pero cualquier ayuda será apreciada.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede crear los parámetros para .find y .sort dinámicamente:

 router.get("/sellProduct", (req, res, next) => { const findParams = {}; const sortParams = { lowerCostPrice: { costPrice: 1 }, higherCostPrice: { costPrice: -1 }, lowerSoldPrice: { soldPrice: 1 }, higherSoldPrice: { soldPrice: -1 }, /* add more sort options ... */ }[req.query.sortBy]; if (req.query.product) findParams.prodName = req.query.product /* add more search options ... */ Product.find(findParams).sort(sortParams).then(data => { if (data) { res.status(200).send(data); } else { res.status(404); } }).catch(err => { console.log(err); res.status(500); }); });
over 4 years ago · Santiago Trujillo Relatório

0

Si entiendo su pregunta correctamente, puede agregar un bloque de cambio y, según el valor pasado, ordenar los productos:

 router.get('/sellProduct', (req, res, next) => { let result; // ... if (req.query.sortBy) { switch (req.query.sortBy) { case 'lowerCostPrice': { result = await Product.find({}).sort({ price: 'asc' }); break; } case 'higherCostPrice': { result = await Product.find({}).sort({ price: 'desc' }); break; } // and so on... } } // ... res.status(200).send(result); });
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