Иногда данные не отображаются в браузере
Когда я нажимаю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;