Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
// server.js – production entry point require('dotenv').config(); // no-op in prod if no .env file const app = require('./app'); const db = require('./db'); // Sequelize/Mongoose instance const PORT = process.env.PORT || 3000; // ── Health check ────────────────────────────────────────────── app.get('/health', async (req, res) => { try { await db.authenticate(); // verify DB connection res.json({ status: 'ok', uptime: process.uptime() }); } catch (err) { res.status(503).json({ status: 'error', detail: err.message }); } }); // ── Start server ────────────────────────────────────────────── const server = app.listen(PORT, () => { console.log(`Listening on port ${PORT} (${process.env.NODE_ENV})`); }); // ── Graceful shutdown ───────────────────────────────────────── async function shutdown(signal) { console.log(`${signal} received – shutting down gracefully`); server.close(async () => { await db.close(); console.log('DB connection closed. Exiting.'); process.exit(0); }); // Force exit after 10 s if connections don't close setTimeout(() => process.exit(1), 10_000).unref(); } process.on('SIGTERM', () => shutdown('SIGTERM')); process.on('SIGINT', () => shutdown('SIGINT'));
Result
Open