Code Monkey home page Code Monkey logo

nest-js-crashcourse's Introduction

Nest js Project

following Course

Lesson 1 Structure, Simple Controller, DTO

Root Module is app.module

to generate new files use cli:

  • nest generate ... [name]
    • controller
    • module

useful decorators for controller: decorators are prededefined functions.

@Get @Post @Param @Query @Controller

When dealing with data its handy to use DTO's to define what data is send to controller.

Lesson 2 Validation

Nest Docs

Validate Values in Body:

yarn add class-validator class-transformer

  • use decorator from class Validator inside DTO to ensure validation
  • add Validation Pipe to Controller @UsePipes(new ValidationPipe())

Validate Data type in Param:

@Param('id', ParseIntPipe)

Lesson 3 Services & Providers

Providers are injected. Nestjs uses Dependency Injection.

Lesson 4 Services

Take care of the Business Logic. Seperation of Concerns. nest generate service /users/services/users or nest g s /users/services/users

every provider has @Injectable() Decorator. This means Nest is able to do dependency injection

Lesson 5 Middleware

Run before Controller. Has access to Request and Response.

nest generate middleware

special way to register. Add as Consumer `` export class UsersModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(ExampleMiddleware).forRoutes('users'); } }

``

Lesson 6 Pipes & Transformer

two usecases Transformation:

  • Transform properties (Strings-> Int, ...)

Validation:

  • check req body

useful to guarantee certain types.

create new Pipe with cli tool

validateCreateUser

This pipe is added to the controller function

createUser(@Body(ValidateCreateUserPipe) userData: CreateUserDto)

idea: maybe useful for specific DateTime Format etc.

Lesson 7 Guards

a class with the responsibility to decide if the incoming req can be handled by the controller.

authentication, authorisation(roles, etc)

nest g guard /users/guards/Auth

add the annotation to the controller or function @UseGuards(AuthGuard)

nest-js-crashcourse's People

Contributors

widerahannes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.