UNPKG

get-express-starter

Version:

Get production ready express boilerplate with a single command

26 lines (20 loc) 902 B
import { env } from '@/config/env'; import type { Response } from 'express'; import morgan from 'morgan'; import { logger } from './logger'; morgan.token('message', (req, res: Response) => res.locals.errorMessage || ''); const getIpFormat = () => (env.mode === 'production' ? ':remote-addr - ' : ''); const successResponseFormat = `${getIpFormat()}:method :url :status - :response-time ms`; const errorResponseFormat = `${getIpFormat()}:method :url :status - :response-time ms - message: :message`; export const successHandler = morgan(successResponseFormat, { skip: (req, res) => res.statusCode >= 400, stream: { write: (message) => logger.info(message.trim()) }, }); export const errorHandler = morgan(errorResponseFormat, { skip: (req, res) => res.statusCode < 400, stream: { write: (message) => logger.error(message.trim()) }, }); export default { successHandler, errorHandler, };