node.js - 如何将参数解析为 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
以获取单个产品。
推荐阅读
- sql - 所需的分类帐查询
- android - 如何自定义 Retrofit 允许将 null 作为路径参数的值传递?
- android - ScrollView 无法与 ImageButtons 一起正常工作
- firebase - 从 Firebase 托管网站调用 Cloud Run 的最佳方式
- .net-core - 使用带有 dotnet 核心的Sharpcifs 的问题。连接到 Windows 共享
- mysql - 在这种情况下如何使用 SQL 的滞后功能?
- python - 如何去除power bi中Python图的顶部和底部空白?
- python - 如何使用 Robot Framework 按行和列更新 CSV 文件
- python - AttributeError:模块'scipy.interpolate'没有属性'spline'
- c++ - 带空格的字符串/字符输入