Odata $filter 总是 returns 带有节点 js 和 postgresql 的空数组
Odata $filter always returns empty array with node js and postgresql
我想使用 OData 和 $filter 参数创建一个简单的 REST 端点。
这是我的过滤器查询参数:$filter=shoecolor eq 'black'
这是我的节点 js 代码:
import { createFilter } from "odata-v4-pg";
...
var filter = createFilter(req.query.$filter + "");
const projectName = req.params.projectname;
const storeName = req.params.storename;
this.logger.info(filter.where); // prints: "shoecolor" =
var result = await this.database.any(`SELECT * FROM :name.:name WHERE ${filter.where}`, [projectName, storeName]);
this.logger.info(result); // prints an empty array!!!
...
为什么我的 SELECT 和 OData $filter 总是空的?
我自己找到了解决方案:我忘记将 filter.parameters 传递给查询。这个 link 给出了一个很好的例子:https://www.npmjs.com/package/odata-v4-pg?activeTab=readme
我想使用 OData 和 $filter 参数创建一个简单的 REST 端点。
这是我的过滤器查询参数:$filter=shoecolor eq 'black'
这是我的节点 js 代码:
import { createFilter } from "odata-v4-pg";
...
var filter = createFilter(req.query.$filter + "");
const projectName = req.params.projectname;
const storeName = req.params.storename;
this.logger.info(filter.where); // prints: "shoecolor" =
var result = await this.database.any(`SELECT * FROM :name.:name WHERE ${filter.where}`, [projectName, storeName]);
this.logger.info(result); // prints an empty array!!!
...
为什么我的 SELECT 和 OData $filter 总是空的?
我自己找到了解决方案:我忘记将 filter.parameters 传递给查询。这个 link 给出了一个很好的例子:https://www.npmjs.com/package/odata-v4-pg?activeTab=readme