nestJs

2021-10-18  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读