nhb-express
Version:
Express TypeScript Server Scaffold
41 lines (31 loc) • 1.08 kB
text/typescript
import { corsOptions } from '@/configs/cors';
import { catchAllErrors, handleRouteNotFound } from '@/middlewares/errorHandlers';
import { requestLogger } from '@/middlewares/requestLogger';
import router from '@/routes';
import sendResponse from '@/utilities/sendResponse';
import cookieParser from 'cookie-parser';
import cors from 'cors';
import type { Application } from 'express';
import express from 'express';
// * Create an Express App
const app: Application = express();
app.set('trust proxy', true);
// * Respect CORS Policy
app.use(cors(corsOptions));
// * Use Cookie Parser
app.use(cookieParser());
// * Use JSON Parser
app.use(express.json());
// * Use custom logger
app.use(requestLogger);
// * Root/Test Route
app.get(['/', '/api'], (_req, res) => {
sendResponse(res, 'N/A', 'OK', null, 'NHB Server is Running! 🏃');
});
// * Application Routes
app.use('/api', router);
// * Error handler for 404 or invalid request
app.use(handleRouteNotFound);
// * Global error handler to catch and send error responses
app.use(catchAllErrors);
export default app;