res.format.html not working with paginate module

I am using the express-paginate module and I am running into some issues around the res.format section in my routes file. I am wondering why this portion is causing the paginate to not be found when I render my view file.

error message:

ReferenceError: /Users/user/Desktop/Projects/node/blog/views/pages/blog.ejs:7
    5| 
    6| <body>
 >> 7| 
    8|  <header>
    9|      <% include ../partials/header %>
    10|     </header>

paginate is not defined
    at buf.push.
            </div>
        </div>

    </div>


    <div class="paginate">
        .
    </div>

    <footer>
        .buf (eval at <anonymous> (/Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:242:14), <anonymous>:34:125)
    at eval (eval at <anonymous> (/Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:242:14), <anonymous>:35:23)
    at eval (eval at <anonymous> (/Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:242:14), <anonymous>:37:67)
    at /Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:255:15
    at Object.exports.render (/Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:293:13)
    at View.exports.renderFile [as engine] (/Users/user/Desktop/Projects/node/blog/node_modules/ejs/lib/ejs.js:323:20)
    at View.render (/Users/user/Desktop/Projects/node/blog/node_modules/express/lib/view.js:76:8)
    at Function.app.render (/Users/user/Desktop/Projects/node/blog/node_modules/express/lib/application.js:517:10)
    at ServerResponse.res.render (/Users/user/Desktop/Projects/node/blog/node_modules/express/lib/response.js:955:7)
    at Object.res.format.html (/Users/user/Desktop/Projects/node/blog/app/routes.js:70:13)

routes.js:

var express = require('express');
var app = express();
var router = express.Router();
var blogDB = require('../config/blogDB.js');
var Blogpost = require('./models/blogModel.js');
var paginate = require('express-paginate');

//index
    router.route('/')
    .get(function(req, res) {
    var drinks = [
            {   name: 'Bloody Mary', drunkness: 3 },
            {   name: 'Martini', drunkness: 5 },
            {   name: 'Scotch', drunkness: 10}
        ];

        var tagline = "Lets do this.";

        res.render('pages/index', {
            drinks: drinks,
            tagline: tagline
        });
    });


app.use(paginate.middleware(10, 50));


//blog
    router.route('/blog') 

        // START POST method
        .post(function(req, res) {

            var blogpost = new Blogpost(); // create a new instance of a Blogpost model

            blogpost.title = req.body.title; // set the blog title
            blogpost.author = req.body.author; // set the author name
            blogpost.content = req.body.content; // set the blog content
            blogpost.date = req.body.date; // set the date of the post
                //Save Blog Post
                blogpost.save(function(err) {
                    if (err)
                        res.send(err);

                    res.json({ message: 'Blog created.' });
                });

        }) // END POST method


        // START GET method
        .get(function(req, res, next) {

            Blogpost.paginate({}, req.query.page, req.query.limit, function(err, pageCount, blogpost, itemCount) {

                if (err) return next(err)

                    Blogpost.find(function(err, blogpost) {
                        if (err)
                            res.send(err);

                        blogpost.title = req.body.title; // update the blog title
                        blogpost.author = req.body.author; // set the author name
                        blogpost.content = req.body.content; // update the blog content
                        blogpost.date = req.body.date; // set the date of the post

                        res.format({
                            html: function() {
                                res.render('pages/blog', {
                                    blogpost: blogpost,
                                    pageCount: pageCount,
                                    itemCount: itemCount
                                })
                            },
                            json: function() {

                                res.json({
                                    object: 'blogpost',
                                    has_more: paginate.hasNextPages(req)(pageCount),
                                    data: blogpost
                                })
                            }
                        }); // END res.format(html, json)
                    }) // END Find Blogpost 
            }); // END Blogpost.paginate
        }); // END GET method


    //Route for individual blogs
    router.route('/blog/:blogpost_id')

    // START GET method blog by ID  
    .get(function(req, res) {
        Blogpost.findById(req.params.blogpost_id, function(err, blog) {
            if (err)
                res.send(err);
            res.json(blog);
        });
    }) // END GET method blog by ID

    // START PUT method
    .put(function(req, res) {

        Blogpost.findById(req.params.blogpost_id, function(err, blogpost) {

            if (err)
                res.send(err);


            blogpost.title = req.body.title; // update the blog title
            blogpost.author = req.body.author; // set the author name
            blogpost.content = req.body.content; // update the blog content
            blogpost.date = req.body.date; // set the date of the post

            blogpost.save(function(err) {
                if (err)
                    res.send(err);


                res.json({ message: 'Blog updated.' });
            });

        });

    }) // END PUT method

    // START DELETE method
    .delete(function(req, res) {

        Blogpost.remove({
            _id: req.params.blogpost_id

        }, function(err, bear) {
            if (err)
                res.send(err);

            res.json({ message: 'Successfully deleted' });
        });
    });



//about
    router.get('/about', function(req, res) {
            res.render('pages/about');
    });


module.exports = router;

paginate.ejs:

<div class="grid">
    <div class="col-1-1">
        <div class="paginate">


                <ul>
                <% if (paginate.hasPreiousPages) { %>
                    <li>
                        <a href="<%=paginate.href().prev %>">Previous</a>
                    </li>
                <% } %>

                <% if (paginate.hasNextPages) { %>
                    <li>
                        <a href="<%=paginate.href().next %>">Next</a>
                    </li>
                <% } %>
                </ul>


        </div>
    </div>
</div>

blog.ejs:

<html>
<head>
    <% include ../partials/head %>
</head>

<body>

    <header>
        <% include ../partials/header %>
    </header>

    <div class="grid">
        <div class="col-1-1">
            <div class="body-content">
                <% blogpost.forEach(function(blogpost) { %>
                    <tr>
                        <td><h2><%= blogpost.title %></h2></td>
                        <td><h3><%= blogpost.author %></h3></td>
                    </tr>
                    <% }); %>
            </div>
        </div>

    </div>


    <div class="paginate">
        <% include ../partials/paginate %>
    </div>

    <footer>
        <% include ../partials/footer %>
    </footer>

</body>
</html>

On the second line of your routes.js file, you are calling

var app = express();

This line creates a new express app. Then you use the paginate middleware on this new app,

This is not the 'running' app, you can find the main app instance in your app.js

All your requests are handled by the app created in app.js, this way the paginare middleware never gets called.

To fix this

1: remove these two lines from routes.js

var app = express();

var paginate = require('express-paginate');

2: add in app.js (before you load your routes)

var paginate = require('express-paginate');
app.use(paginate.middleware(10, 50));

Or if you only want to use pagination for that specific set of routes, remove

var app = express();

and use

router.use(paginate.middleware(10, 50));