index.js 756 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 'use strict';
  2. const express = require('express');
  3. const logger = require('../logger');
  4. const { port } = require('../config');
  5. const app = express();
  6. require('./middleware')(app);
  7. app.use('/', require('./routes'));
  8. // eslint-disable-next-line no-unused-vars
  9. app.use((err, req, res, next) => res.sendStatus(err.status || 500));
  10. let server;
  11. function start() {
  12. return new Promise((resolve, reject) => {
  13. if (server) {
  14. resolve(app);
  15. return;
  16. }
  17. server = app
  18. .listen(port, () => {
  19. logger.info(`Server running on port ${port}...`);
  20. resolve(app);
  21. })
  22. .on('error', reject);
  23. });
  24. }
  25. function stop() {
  26. if (server) {
  27. server.close();
  28. }
  29. server = undefined;
  30. }
  31. module.exports = {
  32. start,
  33. stop,
  34. };