Node-server for unitstock app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
1.9 KiB

  1. #!/usr/bin/env node
  2. /**
  3. * Module dependencies.
  4. */
  5. var app = require('./config/config');
  6. var debug = require('debug')('unitcheck:server');
  7. var http = require('http');
  8. const cron = require('node-cron');
  9. const path = require('path');
  10. const fs = require('fs-extra');
  11. /**
  12. * Get port from environment and store in Express.
  13. */
  14. var port = normalizePort(process.env.PORT || '3451');
  15. app.set('port', port);
  16. /**
  17. * Create HTTP server.
  18. */
  19. var server = http.createServer(app);
  20. /**
  21. * Listen on provided port, on all network interfaces.
  22. */
  23. server.listen(port);
  24. server.on('error', onError);
  25. server.on('listening', onListening);
  26. server.setTimeout(600000);
  27. cron.schedule('59 23 * * * *', function() {
  28. var dirPath = path.join(__dirname , `/public/sqlite/db/`);
  29. fs.emptyDirSync(dirPath);
  30. });
  31. /**
  32. * Normalize a port into a number, string, or false.
  33. */
  34. function normalizePort(val) {
  35. var port = parseInt(val, 10);
  36. if (isNaN(port)) {
  37. // named pipe
  38. return val;
  39. }
  40. if (port >= 0) {
  41. // port number
  42. return port;
  43. }
  44. return false;
  45. }
  46. /**
  47. * Event listener for HTTP server "error" event.
  48. */
  49. function onError(error) {
  50. if (error.syscall !== 'listen') {
  51. throw error;
  52. }
  53. var bind = typeof port === 'string'
  54. ? 'Pipe ' + port
  55. : 'Port ' + port;
  56. // handle specific listen errors with friendly messages
  57. switch (error.code) {
  58. case 'EACCES':
  59. console.error(bind + ' requires elevated privileges');
  60. process.exit(1);
  61. break;
  62. case 'EADDRINUSE':
  63. console.error(bind + ' is already in use');
  64. process.exit(1);
  65. break;
  66. default:
  67. throw error;
  68. }
  69. }
  70. /**
  71. * Event listener for HTTP server "listening" event.
  72. */
  73. function onListening() {
  74. var addr = server.address();
  75. var bind = typeof addr === 'string'
  76. ? 'pipe ' + addr
  77. : 'port ' + addr.port;
  78. console.log('Listening on ' + bind);
  79. debug('Listening on ' + bind);
  80. }