nestJs

作者: 叫我王必过 | 来源:发表于2021-10-18 00:48 被阅读0次

    一、nestJs是什么?

    Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素。

    在底层,Nest使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify。Nest 在这些框架之上提供了一定程度的抽象,同时也将其 API 直接暴露给开发人员。这样可以轻松使用每个平台的无数第三方模块。

    二、使用 Nest CLI 构建项目

    // 安装Nest CLI
    $ npm i -g @nestjs/cli
    // 使用nest cli 构建项目
    $ nest new project-name
    // 启动程序
    $ npm run start
    

    三、核心文件的简要概述

    image.png

    四、@nestjs/common

    提供了一些装饰器,可以直接使用。

    /* cats.controller.ts */
    
    import { Controller, Get, Query, Post, Body, Put, Param, Delete } from '@nestjs/common';
    import { CreateCatDto, UpdateCatDto, ListAllEntities } from './dto';
    
    @Controller('cats')
    export class CatsController {
      @Post()
      create(@Body() createCatDto: CreateCatDto) {
        return 'This action adds a new cat';
      }
    
      @Get()
      findAll(@Query() query: ListAllEntities) {
        return `This action returns all cats (limit: ${query.limit} items)`;
      }
    
      @Get(':id')
      findOne(@Param('id') id: string) {
        return `This action returns a #${id} cat`;
      }
    
      @Put(':id')
      update(@Param('id') id: string, @Body() updateCatDto: UpdateCatDto) {
        return `This action updates a #${id} cat`;
      }
    
      @Delete(':id')
      remove(@Param('id') id: string) {
        return `This action removes a #${id} cat`;
      }
    }
    

    五、控制器
    控制器负责处理传入的请求和向客户端返回响应。处理路由的。

    $ nest g controller cars
    // 看看都有哪些nest 指令
    $ nest  g —help
    

    六、使用模板引擎和配置静态资源
    模板引擎:以ejs为例,处理页面的。

    七、nestJs中的服务
    nestJs中的服务可以是service,也可以是provider。他们都可以通过constroctor注入依赖关系。服务本质上就是通过@Injectable()装饰器注解的类。在nestJs中服务相当于MVC的model。处理数据的。


    image.png

    八、nestJs中使用cookie(cookie-parser)
    与平台有关

    // 安装
    $ yarn add cookie-parser
    // 引入
    import * as cookieParser from 'cookie-parser';
    // 在main.ts配置中间件
    app.use(cookieParser());
    // 设置cookie
    res.cookie({name: 'wangbiguo'})
    // 获取cookie
    req.cookies.name
    

    相关文章

      网友评论

          本文标题:nestJs

          本文链接:https://www.haomeiwen.com/subject/yrlwoltx.html