如何在express / ejs

时间:2018-07-05 07:56:51

标签: express web dynamic mongoose ejs

这里是新的Web开发人员,我正在尝试创建一个电子商务网站,管理员可以在其中创建新类别并将产品添加到数据库中。然后,我希望可以动态创建类别页面(也许通过某些模板),而现在,我希望该页面将变得简单,仅是一个导航栏和带有产品的网格。我知道如何使用网格和导航栏制作静态类别的网页,并且我想知道如何动态添加路由以及将类别动态添加到导航栏,但是如何使用导航栏,网格和代码创建网页在数据库中动态搜索该类别中的所有项目?

不知道这是否是正确的方法,但是我有2种模式

var mongoose = require('mongoose');

var categorySchema = new mongoose.Schema({
   name: String 
});

module.exports = mongoose.model('Category', categorySchema);

var productSchema = new mongoose.Schema({
  name: String,
  category: {
      type: String,
      enum:['men', 'women', 'children']
  },
  price: Number, 
  description: String,
  date: { type: Date, default: Date.now }

})

在数据库中,可以说我有一个带有导航栏的EJS文件,并具有对数据库进行排序的功能,如下所示:

<html >
    <head>
        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.2/semantic.min.css">
    </head>

    <body>

    <div class="ui inverted menu">
      <div class="header item">B2Better</div>
      <a class="item">About Us</a>

      <div class="right menu">
        <a class="ui item">Sign In</a>
        <a class="ui item">Login</a>
        <a class="ui item">Logout</a>
      </div>

    </div>


    <div class="ui inverted vertical menu">
      <div class="item">
        <div class="header">Categories</div>
        <div class="menu">
          <a class="item">Men</a>
          <a class="item">Women</a>
          <a class="item">Children</a>
          <a class="item">Baby</a>
        </div>
      </div>
    </div>

    <% products.forEach(function(product){ %>
    <%    if (product.category===x) { %>
            <h5><%= product.name %></h5>
            <img src='someurl'>
    <%    } %>
    <% }) %>


    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.2/semantic.min.js"></script>
    </body>
</html>

我需要对数据库中的每个类别都表达一个类似这样的新页面,我该如何实现呢?

谢谢

0 个答案:

没有答案