Advertisement
StrongJava

server.ts

Jul 6th, 2022
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. import cookieParser from "cookie-parser"
  2. import cors from "cors"
  3. import express, {
  4. ErrorRequestHandler,
  5. NextFunction,
  6. Request,
  7. Response
  8. } from "express"
  9. import { HttpProblemResponse } from "express-http-problem-details"
  10. import helmet from "helmet"
  11. import {
  12. DefaultMappingStrategy,
  13. MapperRegistry
  14. } from "http-problem-details-mapper"
  15. import morgan from "morgan"
  16.  
  17. import APITokenFormatErrorMapper from "./common/error_mappers/APITokenFormatErrorMapper.js"
  18. import AuthorizationErrorMapper from "./common/error_mappers/AuthorizationErrorMapper.js"
  19. import DbOperationErrorMapper from "./common/error_mappers/DbOperationErrorMapper.js"
  20. import Logger from "./common/logger.js"
  21. import quicken from "./quicken/quicken.route.js"
  22.  
  23. console.log("Test: ", process.env.TEST)
  24. const app = express()
  25.  
  26. const errorHandler: ErrorRequestHandler = (
  27. err: Error,
  28. req: Request,
  29. res: Response,
  30. next: NextFunction,
  31. ) => {
  32. if (res.headersSent) {
  33. Logger.debug("server.errorHandler Headers were already sent")
  34. next(err)
  35. }
  36. }
  37.  
  38. app.use(helmet())
  39. app.use(cors())
  40. app.use(cookieParser())
  41. if (process.env.NODE_ENV !== "prod") app.use(morgan("dev"))
  42. app.use(express.json({ limit: "50mb" }))
  43. app.use(express.urlencoded({ extended: false }))
  44.  
  45. // Register api routes
  46. app.use("/api/v1/quicken", quicken)
  47. Logger.debug("Routes registered.")
  48. app.use("*", (req: Request, res: Response) => {
  49. res.status(404).send("Sorry, can't find that!")
  50. })
  51.  
  52. const strategy = new DefaultMappingStrategy(
  53. new MapperRegistry()
  54. .registerMapper(new APITokenFormatErrorMapper())
  55. .registerMapper(new AuthorizationErrorMapper())
  56. .registerMapper(new DbOperationErrorMapper()),
  57. )
  58. app.use(
  59. HttpProblemResponse({
  60. strategy,
  61. }),
  62. )
  63.  
  64. app.use(errorHandler)
  65.  
  66. export default app
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement