Saturday 27 September 2014

a pagination module/library for node.js (x-pagination)

Standard
today i have realize that this world not enough for future data then i think we need to hire MARS or other planet .

so can not all data in one page it will more time consumption and not reliable and page will open so slow and if you have more data then page will time out so then we need a mechanism where we can handle all data smoothly and systemically that we need pagination all data will split with a limit and show in different page.
so i have developed a module that will help create pagination in node.js
this is recently cooked by me you can find this in bellow link

https://www.npmjs.org/package/x-pagination
https://github.com/netai/x-pagination

bellow all detail



x-pagination

a simple and easy to use pagination module in node.js and
So hope this library help someone like me.
Any ideas are appreciated.

Installation

npm install x-pagination --save

How to use

this module use is so easy just require module and call function
  xp=require('x-pagination');
xp.target(<target page name>);
xp.queryString(true);//url will query string like ?page=2
//add extra query string (if queryString(true) then & or ?) like '?a=4'
xp.optionalQueryString(<additional query>);
xp.parameterName(<parameter name>);//default page
xp.currentPage(<current page no>);//current page no.
xp.items(<total record>);//total record
xp.getOutput();//retern html string

Example

Here i have give you a simple i think it will help
  var xp=require('x-pagination');
xp.target('my-product');
limit=10;
page=(typeof req.params.page!='undefined')?parseInt(req.params.page):1;
start=(page-1)*limit;
xp.limit(limit);//limit for per page
xp.currentPage(page);//current page no.
xp.items(rows.length);//total record
pg_div=xp.getOutput();//get html

change in router.js file because your current url with pagination like

http://<domain name>/<target page>/page/<page no>

so add a new router rule like:

/<target page>/page/:page
ok now i will describe what function you can use in pagination

Function Description

require('x-pagination');

require pagination librery
ex: xp=require('x-pagination');

target(<page name>)

this use for set your target page what page will paginate
* this function compulsary
ex: xp.target('product-list');

limit(<limit>)

this use for set limit of record how many record will show
* this function compulsary
ex: xp.limit(10);

currentPage(<current page no>)

this use for set current page no
* this function compulsary
ex: xp.currentPage(2);

queryString(<true or false>)

this use for how url will show like query string(product?page=1) 
or seo/user friendly(product/page/1)
this is default false
ex: xp.queryString(true);

optionalQueryString(<additional query>)

this use for add extra query string with url
if queryString set true then add '&' or not then use '?'
also you can use seo/user friendly url('/search/3')
ex: xp.optionalQueryString('?a=2');

parameterName(<parameter name>)

this use for set pagination parameter
this is default is page
ex: xp.parameterName('p');//url will product/p/3

items(<total record>)

this use for set total no record
* this function compulsary
ex: xp.items(200);

getOutput()

this is use for get generated html string
* this function compulsary
ex: xp.getOutput();

screen shot