import http from 'http' import mongoose from 'mongoose' import { app } from './app.js' import config from './config/appConfig.js' import { connectionOptions, getConnectionString, Management } from './db/index.js' export default async function runServer (...args) { try { const uri = getConnectionString() const db = await mongoose.connect(uri, connectionOptions) await Management.initManagementSettings() const server = http.createServer(app) server.on('error', (error) => { console.log('Error:', error.message) server.close() }) server.listen(config.port, () => { console.log(`Server running on port ${config.port}`) }) process.on('SIGTERM', () => { server.close(() => { console.log('HTTP server closed.') db.connection.close(false, () => { console.log('MongoDB server closed.') }) }) }) } catch (err) { if (err.name === 'MongooseServerSelectionError') { console.log('ERROR: MongooseServerSelectionError') } else { console.log('ERROR:', err.name) } process.exit(1) } }