使用查询字符串 Javascript 过滤对象项

佩德罗·格里夫·马辛考斯基

我有一个包含产品列表的对象,我想通过使用带有提供的查询字符串的 GET 方法对其进行过滤。

我需要创建到产品“/products”的路由,并且我需要获取由查询字符串中提供的“最大”价格过滤的对象列表。例如,如果提供的 url 是“/products/max=2000”,我想取回不超过该设置最大值的产品列表。

我一直在尝试这样的事情但没有成功:

const express = require('express');
const router = express.Router();

const products = [
    {
        nome: 'Motorola Moto E6 Plus',
        preco: 14999
    },
    {
        nome: 'Motorola Moto G7',
        preco: 19999
    },
    {
        nome: 'Alcatel 5033A',
        preco: 6999
    },
    {
        nome: 'Samsung Galaxy A50',
        preco: 33499
    }
];

const filterPrice = {
    viewCelular: (req, res)=>{
        let {celular, preco} = req.query;

        res.send(products)
    }
}

router.get('/products', (req, res) => { 

    res.send(req.query.filterPrice)
    })
阿琼·辛格

在您的代码中,您需要传递req, resin filterPricefunction 和 destruct maxfromreq.query并应用过滤器,然后发送响应。你的网址会像http://localhost:3000/products?max=2000.
下面是一个例子:

var express = require('express');
var app = express(); 
const products = [
  {
    nome: 'Motorola Moto E6 Plus',
    preco: 14999
  },
  {
    nome: 'Motorola Moto G7',
    preco: 19999
  },
  {
    nome: 'Alcatel 5033A',
    preco: 6999
  },
  {
    nome: 'Samsung Galaxy A50',
    preco: 33499
  },
  {
    nome: 'Smartwatch',
    preco: 1700
  }
];
const filterPrice = {
  viewCelular: (req, res) => {
    let { celular, preco, max } = req.query;

    res.send(products.filter(e => e.preco <= max))
  }
}
app.get('/products/', (req, res) => {
  filterPrice.viewCelular(req, res)
})
var port = process.env.PORT || 3000
app.listen(port);
console.log('I am ready and listening on %d', port);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章