简体   繁体   English

Odata $filter 总是返回带有节点 js 和 postgresql 的空数组

[英]Odata $filter always returns empty array with node js and postgresql

I want to create a simple REST endpoint with OData and the $filter parameter.我想用 OData 和 $filter 参数创建一个简单的 REST 端点。 This is my filter query param: $filter=shoecolor eq 'black'这是我的过滤器查询参数: $filter=shoecolor eq 'black'

And this is my node js code:这是我的节点 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" = $1         

   var result = await this.database.any(`SELECT * FROM $1:name.$2:name WHERE ${filter.where}`, [projectName, storeName]);
   this.logger.info(result);           // prints an empty array!!!
...

Why is my SELECT with OData $filter always empty?为什么我的带有 OData $filter 的 SELECT 总是为空?

I found the solution on my own: I forgot to pass filter.parameters to the query.我自己找到了解决方案:我忘记将 filter.parameters 传递给查询。 This link gives a good example: https://www.npmjs.com/package/odata-v4-pg?activeTab=readme这个链接给出了一个很好的例子: https://www.npmjs.com/package/odata-v4-pg?activeTab=readme

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM