UNPKG

get-express-starter

Version:

Get production ready express boilerplate with a single command

45 lines (37 loc) 997 B
import app from './app'; import prisma from './lib/prisma'; import { env } from './config'; import { logger } from './config/logger'; import type { Server } from 'node:http'; let server: Server; async function startServer() { try { await prisma.$connect(); logger.info('Connected to PostgreSQL'); server = app.listen(env.port, () => { logger.info(`Listening on port ${env.port}`); }); } catch (error) { logger.error('Error connecting to PostgreSQL', error); process.exit(1); } } startServer(); const exitHandler = async () => { if (server) { server.close(async () => { await prisma.$disconnect(); process.exit(1); }); } else { await prisma.$disconnect(); process.exit(1); } }; const unexpectedErrorHandler = (error: any) => { logger.error(error); exitHandler(); }; process.on('uncaughtException', unexpectedErrorHandler); process.on('unhandledRejection', unexpectedErrorHandler); process.on('SIGTERM', exitHandler);