我有一个包含产品列表的对象,我想通过使用带有提供的查询字符串的 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
, res
in filterPrice
function 和 destruct max
fromreq.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] 删除。
我来说两句