Софтуерно Инженерство
Loading...
dimityr.jechev avatar dimityr.jechev 196 Точки

[Workshop] Как се сортират въпросите по датата на техните отговори

Здравейте, някой може ли  да ми каже как се сортират въпростите по датите на техните отговори?
Това е моята схема на въпросите 
var threadSchema = mongoose.Schema({
  title: {
    type: String,
    required: true
  },
  description: {
    type: String,
    required: true
  },
  author: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User'
  },
  publishTime: {
    type: Date,
    default: Date.now
  },
  answers: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Answer'
  }]
})

Тагове:
0
Express.js Web Development
dimityr.jechev avatar dimityr.jechev 196 Точки

А тоя pagination как се прави ?Може ли да видя и във view-то ,че ужас...

0
IVANMARINOV1975 avatar IVANMARINOV1975 19 Точки

Не съм го правил още.Тази вечер ще го умувам.В нета пише много неща.Ако никой не е писал до тогава ще споделя какво съм открил:)

0
evgenikolov avatar evgenikolov 310 Точки

Някой пребори ли pagination-a? Ако може да споделите някакви варианти ще е супер. 

0
IVANMARINOV1975 avatar IVANMARINOV1975 19 Точки

След дълго ровене открих нещо много елегантно.Без допълнителни пакети и т.н.Прераборих си го сам.При мен работи, разгледайте го и вие за грешки:).

Контролер:

paging: (req, res) => {
    let next
    let prev
    let page = parseInt(req.params['page']) || 1
    let num = page * 20
    Thread.count({})
    .then(total => { let pages = Math.ceil(total / 20)
      if (num < total) { next = true }
      if (num > 20) { prev = true }
      Thread.find({}).sort({lastAnswerDate: 'desc'}).skip(20 * (page - 1)).limit(20)
      .exec()
      .then(t => {
        if (page > pages) { res.redirect('/pages/' + pages) }
        res.render('threads/paging', { page: page, prev: prev, next: next, threads: t })
      })
    })
  }

View:

ul.list
  each val in threads
    li=val.title
if (prev)
  a(href="/pages/"+(page - 1) ) Previous
if (next)
  a(href="/pages/"+ (page + 1) ) Next  

 Router:

app.get('/pages/:page', controllers.threads.paging)

В работен вариант е но мисля че върши работа..

1