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