一、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
三、核心文件的简要概述
四、@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。处理数据的。
八、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