javascript - Express + node.js API 过滤

标签 javascript node.js postgresql rest express

我正在开发 Node API。 我有像 GET/messages

这样的端点

这将返回所有消息。我想在此端点上进行分页,例如

GET /messages?filter=my_filter_string&limit=10&offset=10

过滤语句是这样的

{fieldName1}={fieldValue1}&...{fieldNameN}>{fieldValueN}.
Operations can be =, > or <. < and > operations are only for number, integers and dates

我使用 sequelize 作为 ORM,使用 postgresql 作为数据库。 我的问题是如何解析 my_filter_statement 并将其转换为用于 sequelize 的搜索条件对象。 另外,如果我像这样调用 API

GET /messages?filter="id=10&contentlength>20"&limit=10&offset=10

它不工作

最佳答案

你能不能有,例如:

GET /messages?greater=1&less=5&limit=10&offset=10

然后在 Node 中:

var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;

并将查询参数(例如大于/小于(可以缩写为“gt”和“lt”))与您在语句中需要的符号相匹配?

关于javascript - Express + node.js API 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26339559/

相关文章:

javascript - 如何将所有 JS、CSS、IMG 重写为静态子域?

javascript - 如果宽度大于 767px 是否启用插件?

sql - 获取受更新或插入影响的行数

node.js - async.each 嵌套在 async.waterfall 中

javascript - 有没有办法从 child_process.execFile 生成的 python 脚本中获取 'live' 输出行,而无需每次都刷新 stdout?

postgresql - 在多边形中查找点

mysql - 在没有存储过程、触发器或 UDF 的情况下实现父类(super class)型和子类型数据完整性

javascript - javascript FileReader 如何知道要读取哪个文件?

javascript - 禁用基于日期选择的日期

node.js - 我的数据库未在 Sequelize 中更新