HomeController.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. module.exports = function(app) {
  2. const New = app.models.New;
  3. this.indexView = function(req, res) {
  4. const news = New.query;
  5. let limit = 12;
  6. let offset = 0;
  7. news.findAndCountAll().then(( data ) => {
  8. let page = req.params.page;
  9. let pages = Math.ceil(data.count / limit);
  10. offset = limit * (page - 1);
  11. news.findAll({
  12. order: [ [ 'createdAt', 'DESC' ]],
  13. limit: 12
  14. }).then(news => {
  15. res.render("index", {
  16. layout: 'layouts/layout',
  17. news: news,
  18. pagesNumber: pages,
  19. currentPage: 1
  20. });
  21. });
  22. })
  23. }
  24. this.filterByPagination = ( req, res ) => {
  25. const news = New.query;
  26. const limit = 12;
  27. news.findAndCountAll().then(( data ) => {
  28. let page = req.params.page;
  29. let pages = Math.ceil(data.count / limit);
  30. offset = limit * (page - 1);
  31. news.findAll({
  32. order: [ [ 'createdAt', 'DESC' ]],
  33. limit: 12,
  34. offset: offset,
  35. $sort: { id: 1 }
  36. }).then(news => {
  37. res.render("index", {
  38. layout: 'layouts/layout',
  39. news: news,
  40. pagesNumber: pages,
  41. currentPage: page
  42. });
  43. });
  44. })
  45. }
  46. this.postView = ( req, res ) => {
  47. const news = New.query;
  48. news.findOne({ where: { id: req.params.post_id } }).then(post => {
  49. res.render("single", {
  50. layout: 'layouts/layout',
  51. post: post,
  52. });
  53. })
  54. }
  55. return this;
  56. }