если не работает статистика с движком ejs view - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь создать «Страницу заказов», в которой есть список заказов на одной странице, но в нем должны быть отдельные разделы.Один для «Уже сделано», а другой для «В ожидании».Он имеет простую базу данных с полем «isDone», которое имеет значение true или false.Так что, как я представляю, если это правда, то это должно появиться в разделе «Уже сделано», но проблема в том, что если по какой-то причине не работает оценка в .ejs.

<body class="container">
        <main>
            <div class="jumbotron">
                <h1>Pending</h1>
            </div>
            <% orders_list.forEach(function(order){ %>
                <% if(order.isDone == false) { %>
                    <div>
                    <h3><a href='<%= order.url %>'><%= order.name %></a> - <%= order.price %> euru</h3>
                    <hr>
                    </div>
                <% } %>
            <% }) %>
            <div class="jumbotron">
                <h1>Already made</h1>
            </div>
            <% orders_list.forEach(function(order){ %>
                <% if(order.isDone == true) { %>
                    <div>
                    <h3><a href='<%= order.url %>'><%= order.name %></a> - <%= order.price %> euru</h3>
                    <hr>
                    </div>
                <% } %>
            <% }) %> 
        </main>
</body>
var express = require('express');
var router = express.Router();
var Order = require('../models/order');

router.get('/orders', function(req, res){
    Order.find({})
    .exec(function(err, list_orders){
      if (err) {return next(err)};
      // If Successful
      res.render('../views/pages/index', {orders_list : list_orders});
    });
  });

module.exports = router;
var mongoose = require('mongoose');

var Schema = mongoose.Schema;

var OrderSchema = new Schema(
  {
    isDone: {type: Boolean, required: true},
    name: {type: String, required: true},
    quantity: {type: Number, required: true},
    price: {type: Number, required: true},
    phone: {type: Number},
  });

  OrderSchema
  .virtual('url')
  .get(function(){
      return '/order/' + this._id;
    });

module.exports = mongoose.model ('Order', OrderSchema);

Я ожидаю, что «isDone» == истинные заказы перейдут в раздел «Уже сделано», а «isDone» == ложные заказы должны перейти в раздел «Ожидание».Но даже не один предмет появляется.База данных успешно подключена, если нет статистики if, то на странице появляются заказы.

1 Ответ

0 голосов
/ 26 апреля 2019

В вашем if условии у вас есть значение quote your true, потому что файл ejs принимает его как значение вместо логического значения, поэтому укажите true в кавычках вот так, и оно будет работать нормально.

 <% if(orders_list[i].isDone == 'true'){ %>
   <div>
    <h3><a href='<%= orders_list[i].url %>'><%= orders_list[i].name %></a> - <%= orders_list[i].price %> euru</h3>
     <hr>
     </div>
  <% } %>
...