Иногда данные не отображаются в браузере

Когда я нажимаюctr + r иногда целые данные не отображаются. на моем("/") страница у меня есть левая сторона и правая сторона. Левая сторона должна отображать все данные, а правая сторона должна отображать случайный фрагмент данных. Это работает большую часть времени, но если я нажмуctr + r на клавиатуре для обновления иногда некоторые или все данные не отображаются.

Вот как работает мой код.

устанавливаетcomps коллекции к данным изarr (сейчас у меня 3 элем. 3 документа).На самом деле, прежде чем он это делает, он удаляет весь контент из коллекции, поэтому каждый раз, когда я иду на "/", я получаю только 3 документа (для тестирования)найти все документы с фильтрами и отобразить их слева (я могу отобразить их, потому что метод find возвращает документ), затем я использую документ в рендере.используйте findOne (), чтобы получить случайное число.

Также вы должны заметить, что в моем коде есть console.log (), и это утешает правильную информацию. Я получаю все 3 документа в консоли.

Если честно, я никогда не использовал более одного метода в модели при рендеринге, и я никогда не использовал случайный метод в методе модели. так что, возможно, я все испорчу.

Я хочу знать, почему иногда данные не отображаются при обновлении.

server.js

var express = require("express"),
    app = express(),
    mongoose = require("mongoose"),
    ejs    = require("ejs");
mongoose.connect("mongodb://localhost/comp1");
var port = process.env.PORT || 3000;   
app.set("view engine", "ejs"); 
app.use(express.static("./public"));

var Comp = require("./models/company.js");

app.get("/", function(req, res){
    var arr = [
    {name : "comp1",industry : "industry1", ranking: 20},
    {name : "comp2",industry : "industry2", ranking: 5},
    {name : "comp3",industry : "industry3", ranking: 10}
    ]
 Comp.count({}, function(err, count){
       var random = Math.floor(Math.random() * count);
        Comp.find({}).remove({}, function(){
            console.log("removed")
        })
        Comp.create(arr, function(err, docs){
            console.log(docs)
            console.log(count)
        })

       Comp.find({}, 'name -_id ranking', {sort :{ranking :1}}, function(err, doc){
            if(err) throw err;
            Comp.findOne().skip(random).exec(function(err, result){
                res.render("index",{data : doc , count: random , result : result})
            })

        })
   })

})




app.listen(port, function(){
    console.log("node is listening on port : " + port );
})

index.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
    <link rel="stylesheet" href="/style.css">
</head>
<body>
    ontop
    <div class="container clearfix">
        <div class="leftSide">TEST
            <%= data%>
            <%data.forEach(function(comp){%>
                <div><%= comp.name %> <span>ranking : <%= comp.ranking %></span></div>
            <%  }); %>
        </div>
        <div class="rightSide">side <%= count %>
            <div><%=result %></div>
        </div>
    </div>

</body>
</html>

company.ejs

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

var compSchema = new Schema({
    name : String,
    industry: String,
    ranking : Number,
    created_at : Date,
    updated_at : Date,
    inc : Number

});

compSchema.pre("save", function(next){
    var currentDate = new Date();
    this.updated_at = currentDate;
    var counter = 0;
    this.inc = counter;
    counter++;

    if(!this.created_at){
        this.created_at = currentDate;
    }
    next();
})

var Comp = mongoose.model("Comp", compSchema);

module.exports = Comp;

Ответы на вопрос(1)

Ваш ответ на вопрос