Skip to content

IngDeiver/express-typescript-template-generator

Repository files navigation

Welcome to Express with typescript and good practices template 👋

License: MIT Build Downloads

Base express.js template with TypeScript and best practices ready for start to coding.

Feactures

  • Selector of features to use
  • Typescript
  • Dodumentation with jsdoc (available in jsdoc/docs/index.html)
  • Commits convections
  • Eslint
  • Repository pattern
  • DTO pattern
  • Validation request data with middlewares
  • Global error handler
  • Mogoose config
  • Dotenv config
  • Testing with jest
  • Pretty logs with winston
  • Pretty routes pattern

Project structure

📦src # Main folder of code
 ┣ 📂config # Folder for  app config, here there is files like dotenv config ig 
 ┣ 📂controller # Folder for handlers functions called from routes
 ┣ 📂dtos # DTO pattern for handle data of models
 ┣ 📂exceptions # Global handle error and custom exceptions
 ┣ 📂interfaces # Interfaces for greater abstraction
 ┣ 📂middlewares # Folder for express middlewares
 ┣ 📂models # Schemas of mongodb for handle data
 ┣ 📂repository # Pattern repository for disengage database engine
 ┣ 📂routes # Express routes for slices
 ┣ 📂server # Express server instance
 ┣ 📂services # Services for write core code bussiness
 ┣ 📂utils # Utils for usage in the application like logger utils
 ┣ 📜app.ts # Main file of project
 ┗ 📜setupTests.ts # Config for testing with jest

Installation

$ npm i -g express-typescript-template-generator

Use

$ express-typescript-template-generator
$ cd <project-name>

Configure your .env file with the necessary environment variables. Create the .env and .env.dev files at the root of the project with:

  • DB_URI=your database uri

Development usage

$ npm run tsc
$ npm run dev

Open the browser in: http://localhost:3000/api/user.

Production usage

$ npm start

Run tests

$ npm run test

Create documentation

$ npm run jsdoc

Eslint

$ npm run lint
$ npm run lint:fix

Author

👤 Deiver Carrascal

Show your support

Give a ⭐️ if this project helped you!. Can make pull request to contribute!.


This README was generated with ❤️ by readme-md-generator