- This repo is boilerplate for typescript and nodejs projects
- Server with express
- Security Packages
- 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
- 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 thatroutes.ts
file will be registered and will be available atdomain/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.
- 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 inPromiseHandler
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.