Node Boilerplate Typescript

  • This repo is boilerplate for typescript and nodejs projects

What is included

  • Server with express
  • Security Packages
    • hpp - Express middleware to protect against HTTP Parameter Pollution attacks
    • helmet - Helmet helps secure Express apps by setting HTTP response headers.
  • File uploading
  • Sending Emails
  • Logging
    • By default it is configured to log on console but you can extend it to write to any file as well
  • Object(s) Validation using zod
  • Error Handling
  • Express Req object extend with typescript support

Routing

  • The base path for api will be api.
  • Any folder you put inside modules folder that container routes.ts file will be added to express router stack and that will be route for the api as well.
  • So suppose if you make folder something like modules/v1/file/routes.ts then all the routes defined in that routes.ts file will be registered and will be available at domain/api/modules/v1/file.
  • So think like routing as a file based routing.
  • You must export router as default export from routes.ts file to make this happen.

Error handling

  • You can alway use try catch in your controllers to handle errors by your self, but here I have used different approach.
  • Just wrap your any controller/middleware that receives express's req,res object wrap them in PromiseHandler function and this will handle the rest of the stuff.
  • Also you can create custom errors in error folder as per your requirement and handle it in handleApiError according the way you want.