app.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*
  2. requires packages
  3. "express": responsável por rotas, server, view engine
  4. "consign": responsável pelo autoload de arquivos
  5. */
  6. const path = require('path'),
  7. express = require('express'),
  8. consign = require('consign'),
  9. http = require('http'),
  10. bodyParser = require('body-parser'),
  11. ejsLayouts = require('express-ejs-layouts');
  12. // REQUIRES OPCIONAIS
  13. /*
  14. * shortId serve pra gerar números de id
  15. * (usado principalmente no lowdb)
  16. */
  17. // const shortId = require('shortid'); // usar no controller
  18. /*
  19. fim requires
  20. */
  21. var app = express();
  22. app.set('view engine', 'ejs');
  23. app.set('views', path.join(__dirname, 'views'));
  24. /*
  25. layout extractScript/Style, servem pra indicar
  26. que todas as tags styles irão forçadamente aparecer no topo do código
  27. e todas as tags scripts irão forçadamente aparecer no rodapé do código
  28. para indicar onde vai forçar o envio do script e styles, usar no layout ejs
  29. <%- script %> <%- style %>
  30. */
  31. app.set('layout extractScripts', true);
  32. app.set('layout extractStyles', true);
  33. /*
  34. habilitar o uso dos layouts ejs
  35. para utilizar um ejs layout
  36. no controller ou rota res.render("index", {layout: 'caminhodolayout'})
  37. no caminho, você poderá definir "yields", usando
  38. <%- defineContent('content') %>
  39. */
  40. app.use(ejsLayouts);
  41. /*
  42. esta função serve para determinar o caminho onde o EJS vai buscar os arquivos
  43. por exemplo, se você colocar um elemnto html <img src="img/teste.jpg", ele buscará
  44. a partir da pasta public, ou seja ele buscar public/img/img.jpg, é onde definimos
  45. qual é a pasta raiz
  46. */
  47. app.use(express.static(path.join(__dirname, 'public')));
  48. /*
  49. body-parser
  50. utilizado pra transferência de dados em requisições HTTP
  51. no metodo post, em forms
  52. */
  53. app.use(bodyParser.urlencoded({ extended: true }));
  54. app.use(bodyParser.json());
  55. /*
  56. autoload em folders
  57. */
  58. consign(/*{cwd: 'exoptjs'} necessário usar com electron */)
  59. .include('./bin/config.json')
  60. /*
  61. * use lowdb.js ou mongodb.js
  62. * de acordo com o banco que você optará por usar
  63. */
  64. .then('./bin/mysql.js')
  65. .then('./models')
  66. .then('./controllers')
  67. .then('./routes')
  68. .into(app);
  69. const PORT = process.env.PORT || 3000;
  70. const New = app.models.New;
  71. app.listen(PORT, function(){
  72. setInterval(function () {
  73. /* 12 segundos * 2 */
  74. var pensarContemporaneo = require('./libraries/PensarContemporaneoWatch.js');
  75. var pensarContemporaneo = new pensarContemporaneo();
  76. pensarContemporaneo.registerLatestNovelty();
  77. /* 8 segundos * 2 */
  78. var AosFatos = require('./libraries/AosFatosWatch.js');
  79. var AosFatos = new AosFatos();
  80. AosFatos.registerLatestNovelty();
  81. /*
  82. amazonia real é lento o site!
  83. 23 segundos * 2
  84. */
  85. var AmazoniaReal = require('./libraries/AmazoniaRealWatch.js');
  86. var AmazoniaReal = new AmazoniaReal();
  87. AmazoniaReal.registerLatestNovelty();
  88. /*
  89. 6 segundos * 2
  90. */
  91. var NosMulheresDaPeriferia = require('./libraries/NosMulheresDaPeriferiaWatch.js');
  92. var NosMulheresDaPeriferia = new NosMulheresDaPeriferia();
  93. NosMulheresDaPeriferia.registerLatestNovelty();
  94. var currentDate = new Date();
  95. console.log('[' + currentDate + ']');
  96. }, 60000 * 20);
  97. console.log("Servidor Online na porta:" + PORT);
  98. });