New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

querystring-sequelize

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

querystring-sequelize

Transform a querystring into a sequelize query

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

Querystring to Sequelize

This library takes a querystring and turns it into something you can give to Sequelize.

Example

const queryLib = require('../lib/query')();
const User = require('../models/user');

const router = new Router();

router
  .get('', async (req, res) => {
    const query = queryLib(req.query);
    res.json(await User.findAll(query));
  })

Opts

You can pass the following options:

{
  max_per_page: 20,
  default_per_page: 10,
}

Like so:

const queryLib = require('../lib/query')({max_per_page: 20});

Opts are new as of version 2.x.x

API

The querystring params you can pass are:

per_page

The number of results you want to receive.

?per_page=10 -> { limit: 10 }

page

The page you are interested in.

?page=2&per_page=10 -> { offset: 10, limit: 10 }

sort

The property you want the results sorted by

?sort=quantity -> { order: ['quantity', 'ASC'] }

-sort

The property you want the results sorted by in descending order

?sort=-quantity -> { order: ['quantity', 'DESC'] }

filter[key]

A property you want to filter by

NB: Express parses filter[key] into {filter: key} and that's what we expect

?filter%5Bfoo%5D=bar -> { where: { foo: 'bar' } }`

filter[key]&filter[key]

Many properties you want to filter by

?filter%5Bfoo%5D=bar&filter%5Bbaz%5D=quux -> { where: { foo: 'bar', baz: 'quux' } }`

updated_since

Only return documents updated since this time

updated_since=2016-12-19T05%3A34%3A15.518Z -> { where: { updated_at: { $gt: '2016-12-19T05:34:15.518Z' } } }

updated_before

Only return documents updated before this time

updated_before=2016-12-19T05%3A34%3A15.518Z -> { where: { updated_at: { $lt: '2016-12-19T05:34:15.518Z' } } }

created_since

Only return documents created since this time

created_since=2016-12-19T05%3A34%3A15.518Z -> { where: { created_at: { $gt: '2016-12-19T05:34:15.518Z' } } }

created_before

Only return documents created before this time

created_before=2016-12-19T05%3A34%3A15.518Z -> { where: { created_at: { $lt: '2016-12-19T05:34:15.518Z' } } }

NB

If the library doesn't like something it's passed, it will throw an error back at you.

Use something that handles errors for you like:

https://www.npmjs.com/package/express-async-errors

or

https://www.npmjs.com/package/express-yields

or

Wrap calls in a try.

Dedication

Development of this library was funded by Ordermentum

Keywords

querystring

FAQs

Package last updated on 09 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts