如何将参数解析为 RESTful API
How can I parse parameters to a RESTful API
我正在尝试制作一个基本的 RESTful API,它在大多数情况下都有效,但我想解析它 url 参数,以便我可以在其中应用多个过滤器一呼
我有以下代码:
app.get('/api/products/:id',(req, res) => {
let sql = "SELECT * FROM products WHERE id="+req.params.id;
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
当我发送这样的请求时,我可以使用它来应用一个过滤器:
localhost/api/products/1
但我想获取所有具有名称及其类别的产品:
IE 我想发送这样的请求:
localhost/api/products?name=stier&category=hammer
我也希望它接受这样的请求
localhost/api/products?category=hammer
这可能吗?我该如何调整我的代码来做到这一点。
提前致谢
您可以完全按照您提到的方式将 query
参数传递给该端点。您可以使用 req.query
访问这些参数
用于:localhost/api/products?name=stier&category=hammer
,req.query
将包含:
{
name: 'stier',
category: 'hammer'
}
对于 URL,您必须为 /api/products
添加路线并留下 /api/products/:id
以获取单个产品。
你只需要设置'/api/products'后面的另一部分?被称为参数并且 express 将它们自己放在对象上 req.query
app.get('/api/products',(req, res) => {
console.log(req.query)
console.log(req.query.name)
console.log(req.query.category)
})
我正在尝试制作一个基本的 RESTful API,它在大多数情况下都有效,但我想解析它 url 参数,以便我可以在其中应用多个过滤器一呼
我有以下代码:
app.get('/api/products/:id',(req, res) => {
let sql = "SELECT * FROM products WHERE id="+req.params.id;
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
当我发送这样的请求时,我可以使用它来应用一个过滤器:
localhost/api/products/1
但我想获取所有具有名称及其类别的产品:
IE 我想发送这样的请求:
localhost/api/products?name=stier&category=hammer
我也希望它接受这样的请求
localhost/api/products?category=hammer
这可能吗?我该如何调整我的代码来做到这一点。
提前致谢
您可以完全按照您提到的方式将 query
参数传递给该端点。您可以使用 req.query
用于:localhost/api/products?name=stier&category=hammer
,req.query
将包含:
{
name: 'stier',
category: 'hammer'
}
对于 URL,您必须为 /api/products
添加路线并留下 /api/products/:id
以获取单个产品。
你只需要设置'/api/products'后面的另一部分?被称为参数并且 express 将它们自己放在对象上 req.query
app.get('/api/products',(req, res) => {
console.log(req.query)
console.log(req.query.name)
console.log(req.query.category)
})