Я хочу добавить нумерацию страниц к этому коду (10 продуктов за раз, используя нумерацию страниц) - PullRequest
0 голосов
/ 30 апреля 2020

Отображение нумерации товаров для обычных пользователей для совершения покупок (не на странице администрирования товара) Отображение 10 товаров за один раз с использованием нумерации страниц

То есть вы должны читать только 10 товаров из Firestore одновременно.

index. js (часть кода магазина)

app.get('/', auth, async (req, res) =>{
   // console.log('============', req.decodedIdToken ? req.decodedIdToken.email : 'no user') 
    const cartCount = req.session.cart ? req.session.cart.length : 0
    const coll = firebase.firestore().collection(Constants.COLL_PRODUCTS)
    try {
        let products = []
        const snapshot = await coll.orderBy("name").get()
        snapshot.forEach(doc => {
            products.push({id: doc.id, data: doc.data()})
        })
        res.setHeader('Cache-Control', 'private');
        res.render('storefront.ejs', {error: false, products, user: req.decodedIdToken, cartCount})
    } catch (e) {
        res.setHeader('Cache-Control', 'private');
        res.render('storefront.ejs', {error: e, user: req.decodedIdToken, cartCount})
    }

storefront.e js

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <%- include('partials/header.ejs') %>

    <title>Store Front</title>
  </head>
  <body>
      <%- include('partials/nav.ejs', {page: 'storefront', user}) %>

    <h1>My Store</h1>

    <% if (error) { %>
        <p style="color: red"><%= JSON.stringify(error) %></p>

    <% } else { %>
        <% for (let p of products) { %> 
            <div class="card" style="width: 18rem; display: inline-block">
                 <img src="<%= p.data.image_url %>" class="card-img-top">
                 <div class="card-body">
                 <h5 class="card-title"><%= p.data.name %></h5>
                 <p class="card-text">$(<%= p.data.price %>)<br><%= p.data.summary %></p>
                 <form action="/b/add2cart" method="post">
                      <input type="hidden" name="docId" value="<%= p.id %>">
                      <button type="submit" class="btn btn-primary">Add to Shoppingcart</button>
                  </form>
                  </div>
            </div>
          <% } %>
    <% } %>
        <%- include('partials/scripts.ejs') %>
     </body>

</html>
...