'use strict'; const express = require('express'); const logger = require('../logger'); const { port } = require('../config'); const app = express(); require('./middleware')(app); app.use('/', require('./routes')); // eslint-disable-next-line no-unused-vars app.use((err, req, res, next) => res.sendStatus(err.status || 500)); let server; function start() { return new Promise((resolve, reject) => { if (server) { resolve(app); return; } server = app .listen(port, () => { logger.info(`Server running on port ${port}...`); resolve(app); }) .on('error', reject); }); } function stop() { if (server) { server.close(); } server = undefined; } module.exports = { start, stop, };