Node.js Nest.js API with TypeScript 3. Supports MongoDB
This generator will help you to build your own Nest.js Mongodb API using TypeScript 3.
- support ES6/ES7 features
- using tslint followed Airbnb JavaScript Style Guide
- Husky
- Commitizen
- MIT license and Code of conduct
- Eslint
- Prettier
- Jest because testing matters
- Typescript for coding with static type checking
- passport local strategy
- jwt authentication
- passport google 2.0 strategy
- MongoDB
- Redis
- MySQL
- mocha
- chai
- supertest
- node >= 12
- npm >= 6
- mongodb >= 4.0
- typescript >= 3.0
First, install Yeoman and generator-nest-js-boilerplate using npm (we assume you have pre-installed node.js).
npm install -g yo
npm install -g generator-nest-js-boilerplate
Then generate your new project:
yo nest-js-boilerplate
App Skeleton
├── nest-cli.json
├── package.json
├── package-lock.json
├── README.md
├── src
│ ├── components
│ │ ├── app...
│ │ ├── auth
│ │ │ ├── guards...
│ │ │ ├── serializers...
│ │ │ └── strategies...
│ │ └── users...
│ ├── guards...
│ ├── interfaces
│ │ └── responses...
│ ├── main.ts
│ └── pipes...
├── tsconfig.build.json
└── tsconfig.json
To start the application in development mode, run:
npm start
Start the application in production env:
Install ts pm2 and typescript compiler:
npm install -g pm2
pm2 install typescript
example start with scale on 2 core:
pm2 start ./dist/main.js -i 2 --no-daemon
Express server listening on http://localhost:3000/, in development mode The developer mode will watch your changes then will transpile the TypeScript code and re-run the node application automatically.
To run integration tests:
npm test
In root folder you can find .env
. You can use this config or change it for your purposes.
Swagger documentation will be available on route:
http://localhost:3000/api
- When you go by http://localhost:3000/google route, google'll ask you to authorize into your account. After successfully sign in to your account you will be redirected to http://localhost:3000/google/redirect route
- Yeoman has a heart of gold.
- Yeoman is a person with feelings and opinions, but is very easy to work with.
- Yeoman can be too opinionated at times but is easily convinced not to be.
- Feel free to learn more about Yeoman.