как разбить мой результат поиска на руле - PullRequest
0 голосов
/ 04 сентября 2018

Когда я ищу --- отображаются продукты ... но когда я нажимаю на странице 2, появляется ошибка ... как я могу разбить результаты поиска на руле ..

Это мой маршрут поиска.

router.get('/products-search',function(req,res,next){
    const perPage = 1;
    const page = req.query.page || 1;
    const title = "Ahl.com: "+ req.query['search'];
    Product.find({"tags" : {"$regex": req.query['search'], "$options": "i"}}).sort('-date').skip((perPage * page) - perPage).limit(perPage)
    .then(products => {
        Product.countDocuments({"tags" : {"$regex": req.query['search'], "$options": "i"}}).then(productCount=>{
            res.render("categories/search", {title:title , products:products , current: parseInt(page), pages:Math.ceil(productCount / perPage)});
        });
    })
    .catch(err => console.log("Search err"));

})

мой помощник руля для нумерации страниц

paginate: function(options){
        let output = "";

        if(options.hash.current === 1){
            output += `<li class="page-item disabled"><a class="page-link">F</a></li>`;
        }else{
            output += `<li class="page-item"><a href="?page=1" class="page-link">F</a></li>`;
        }

        let i = (Number(options.hash.current) > 5 ? Number(options.hash.current) - 4 : 1);

        if(i !== 1){
            output += `<li class="page-item disabled"><a class="page-link">....</a></li>`;
        }

        for(; i <= (Number(options.hash.current) + 4) && i <= options.hash.pages; i++){
            if(i === options.hash.current){
                output += `<li class="page-item active"><a class="page-link">${i}</a></li>`;
            }else{
                output += `<li class="page-item"><a href="?page=${i}" class="page-link">${i}</a></li>`;
            }
            if(i === Number(options.hash.current) + 4 && i < options.hash.pages){
                output += `<li class="page-item disabled"><a class="page-link">....</a></li>`;
            }
        }

        if(options.hash.current === options.hash.pages){
            output += `<li class="page-item disabled"><a class="page-link">L</a></li>`;
        }else{
            output += `<li class="page-item"><a href="?page=${options.hash.pages}" class="page-link">L</a></li>`;
        }

        return output;
    }

нумерация страниц

<div class="container">
  <nav aria-label="Page navigation example">
    <ul class="flex-wrap pagination">
        {{#paginate current=current pages=pages}}{{/paginate}}

    </ul>
  </nav>
</div>
...