@odata-filter/express
v1.0.1
Published
Express middleware for parsing and validating OData filter expressions for comprehensive OData support in Express applications.
Maintainers
Readme
OData Filter Express Middleware
Installation
See INSTALL.md for full instructions.
Usage
Package Installation
npm i @odata-filter/core @odata-filter/validation @odata-filter/express --saveBasic Example
import express from 'express';
import expressMiddleware from '@odata-filter/express';
const app = express();
const schema = {
country: { type: 'string' },
};
app.use(expressMiddleware({ schema }));
// HTTP GET /?filter=country+eq+%27US%27
app.get('/', (req, res) => {
const { filter, filterParsed } = req.query;
console.log('Raw:', filter);
console.log('Parsed:', filterParsed);
res.send();
});
// Raw: "country eq 'US'"
/* Parsed: {
type: 'comparison_operator',
value: 'eq',
left: { type: 'field', value: 'country' },
right: { type: 'string_value', value: 'US' }
}*/Format Options
Pass format: 'mongo-json' to receive a MongoDB query object:
app.use(expressMiddleware({ schema, format: 'mongo-json' }));
// HTTP GET /?filter=country+eq+%27US%27
app.get('/', (req, res) => {
const { filter, filterParsed } = req.query;
console.log('Raw:', filter);
console.log('Parsed:', filterParsed);
res.send();
});
// Raw: "country eq 'US'"
/* Parsed: { country: 'US' } */Pass format: 'sql' to receive a SQL WHERE clause string:
app.use(expressMiddleware({ schema, format: 'sql' }));
// HTTP GET /?filter=country+eq+%27US%27
app.get('/', (req, res) => {
const { filter, filterParsed } = req.query;
console.log('Raw:', filter);
console.log('Parsed:', filterParsed);
res.send();
});
// Raw: "country eq 'US'"
// Parsed: "(country = 'US')"Contributing
See CONTRIBUTING.md for full instructions.
License
See LICENSE for licensing information.
