Sails.Js – How I do pagination in sails.Js

I want to create paginated table using sails.js, mongodb and waterline-ORM.

Is there a any specific way to do pagination in sails.js?

Model.find().paginate({page: 2, limit: 10});

Model.find({ where: { name: 'foo' }, limit: 10, skip: 10 });

If you want the pagination to work asynchronously, its very easy to do with JQUERY $$.getJSON and on the server res.json();

Theres a lot of info in waterline and sails docs.

There is also another way.

if you want to fetch data from the front-end, and have turned blueprint on, you can also try:

1.officer site:

You could build a functional paginator with built-in skip & limit query parameters for blueprint routes:


With this option, you could have dynamically sized page size according to various device sizes – this option you would provide with limit, which is basically your page size. Multiply (page size – 1) by current page number – voila you’ve got your skip parameter.

As to how to get the number of all items, I haven’t found a built-in way to do it, so I’ve written a little helper middleware ( to return the total count in the response JSON this way:

    "results": [
            /* result here */
            /* another result here */
    "totalCount": 80

All you need to do is install the middleware via npm and add it to your middlewares in http.js.

If you need a fully functional example, I’ve also got an example to-do app with this sort of pagination on github: It’s written with vue, but you should get the idea either case.

Read More:   Knockoutjs computed passing parameters

Note that this answer requires sails 1.x.

I think you can also do it with io:

io.socket.get('/thing', {limit: 30, skip: 30*pageNum}, function(things, jwr) { /*...*/ })

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Similar Posts