Nest.JS —is a progressive Node.js framework for building efficient, reliable and scalable server-side applications.
Yeoman — is an open source client-side scaffolding tool for web applications. Yeoman runs as a command-line interface written for Node.js and combines several functions into one place, such as generating a starter template, managing dependencies, running unit tests, providing a local development server, and optimizing production code for deployment.
So, in this tutorial I’ll try to help you on the first steps on how to create a NestJS 8 application.
First of all, we need an application template that we want to generate. For the test, you can take my ready-made template. Next, you need to install Yeoman with the command:
npm install -g yo
then install Nest.js app generator:
npm install -g generator-nest-js-boilerplate
and generate your new project:
- Choose the package manager for your app:
2. Do you want install stable packages`s versions? (recommend choose ‘Yes’)
3. Application name, port, host:
4. Auth (JWT, auth0, sessions), example with JWT:
5. You can try JSON:API specification for building apis in json (lets skip for now):
7. Do you want to have a possibility to send emails?(skip for now):
8. Do you want to use web sockets?(skip for now):
9. Do you want to have a possibility to deploy on Heroku?
Example App Skeleton (for Mongo + JWT + WS)
Running the API
To start the application in development mode, run:
npm run start:dev
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
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.
TypeDoc documentation will be available after entering the command:
npm run docs
Swagger documentation will be available on route:
Please note: All users not verified by default. Please set
"verified": true, for sign-in request.
This boilerplate helps to focus on business requirements implementation instead of investing time in a project setup. Feel free to improve it.
If you have any questions or feedback about this article, feel free to leave a comment.
Thanks for reading.