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

前端 未结 4 1669
無奈伤痛
無奈伤痛 2020-12-29 05:25

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?

4条回答
  •  执念已碎
    2020-12-29 05:38

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

    /api/todos?skip=10&limit=10
    

    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 (https://github.com/xtrinch/sails-pagination-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: https://github.com/xtrinch/vue-sails-todo. It's written with vue, but you should get the idea either case.

    Note that this answer requires sails 1.x.

提交回复
热议问题