Guest User

Untitled

a guest
Dec 11th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. root/
  2. client/
  3. server/
  4. models/
  5. routes/
  6. app.js
  7. logger.js
  8. index.js
  9. index.js
  10.  
  11. 'use strict';
  12.  
  13. if (parseFloat(process.versions.node) < 7.6) {
  14. console.log('Please download node version 7.6 or greater.');
  15. process.exit();
  16. }
  17.  
  18. process.on('SIGTERM', async () => {
  19. const exitCode = await stop();
  20. process.exit(exitCode);
  21. });
  22.  
  23. const promisify = require('es6-promisify');
  24. const open = require('open');
  25.  
  26. require('dotenv').config();
  27.  
  28. const config = require('./config');
  29. const logger = require('./logger');
  30. const models = require('./models');
  31. const app = require('./app');
  32.  
  33. // do not init the process if a crucial component can not start up
  34. const initModels = models.init;
  35. const initServer = promisify(app.listen, app);
  36. async function init () {
  37. try {
  38. await initModels(config.database);
  39. logger.info('Connected to database');
  40. } catch (err) {
  41. logger.error(`Error connecting database: ${err.message}`);
  42. process.exit();
  43. }
  44.  
  45. try {
  46. await initServer(config.port);
  47. } catch (err) {
  48. logger.error(`Couldn't init the app: ${err}`);
  49. // exit code for fatal exception
  50. process.exit(1);
  51. }
  52. logger.appStarted(config.host, app.address().port);
  53. //open(`${config.host}:${config.port}`);
  54. }
  55.  
  56. const closeModels = models.close();
  57. const closeServer = promisify(app.close, app);
  58. async function stop () {
  59. // start with a normal exit code
  60. let exitCode = 0;
  61. try {
  62. await closeModels();
  63. logger.info(`Closed database connection`);
  64. } catch (err) {
  65. logger.error(`Failed to close database connection: ${err.message}`);
  66. }
  67.  
  68. try {
  69. await closeServer();
  70. } catch (err) {
  71. logger.error(`Failed to close the app: ${err}`);
  72. exitCode = 1;
  73. }
  74. return exitCode;
  75. }
  76.  
  77. module.exports = {
  78. init,
  79. stop
  80. };
Add Comment
Please, Sign In to add comment