Nestjs
前端
技术分享
Linux
Python
Rust
常用工具
😃nestjs 前言
type
status
date
slug
summary
tags
category
icon
password
前置知识
要学习 Nest.js,首先需要了解一些基础的知识:
安装
全局安装 Nest.js CLI 工具
创建项目,可以选择使用 yarn 或者 npm 或者 pnpm,我这里以使用 pnpm 为例
启动
上面启动命令在我们修改代码的时候,不会自动重启服务,这时候我们可以使用下面的命令启动服务,这样在修改代码的时候,服务会自动重启。
网页打开 http://localhost:3000/ 就可以看到我们的应用了。
目录介绍
这里主要核心目录在于
src
下:入口文件
main.ts
是应用的入口文件,主要用于创建应用实例,启动应用,监听端口等。后续可能会有一些全局的配置,也会在这里进行配置。如:全局的拦截器,全局的管道等。模块
app.module.ts
是应用的模块文件,主要用于配置应用的模块,以及模块之间的依赖关系。控制器
app.controller.ts
是应用的控制器文件,主要用于处理请求,返回响应。服务
app.service.ts
是应用的服务文件,主要用于处理业务逻辑。测试
app.controller.spec.ts
是应用的测试文件,主要用于测试控制器。可以先不用管这个文件,对于一些简单的应用,可能不需要测试,但是对于一些复杂的应用,测试是必不可少的。对于测试,我这里就不多说了,可以自行学习。这里需要的前置知识:
这个是一个测试框架,可以用于测试 JavaScript 和 TypeScript 代码。当然,你也可以选择忽略这个文件,不进行测试。
配置
配置文件
Nest.js 的配置文件是
nest-cli.json
,这个文件是在创建项目的时候自动生成的,这里可以配置一些项目的信息,如:项目名称,项目描述,作者,语言,包管理工具等。初始就按照这个原本配置就行了,后续有需要再进行修改。具体更多内容请查看 Nest.js 配置文件
环境变量
Nest.js 的环境变量是
.env
文件,这里可以配置一些环境变量,如:数据库地址,数据库用户名,数据库密码等。如果你要使用它,那么你要先安装一个依赖包:
然后在
app.module.ts
中引入:上述代码将从默认位置(项目根目录)载入并解析一个.env 文件,从.env 文件和 process.env 合并环境变量键值对,并将结果存储到一个可以通过 ConfigService 访问的私有结构。具体更多内容请查看 Nest.js 环境变量
路由
Nest.js
的路由是通过 @nestjs/common
中的 @Controller
装饰器来实现的,这个装饰器可以接收一个参数,这个参数就是路由的前缀,如果不传参数,那么默认就是 /
。以下是一个简单的例子:src/app.controller.ts
路由参数
路由参数是通过
@nestjs/common
中的 @Param
装饰器来实现的,这个装饰器可以接收一个参数,这个参数就是路由参数的名称。以下是一个简单的例子:src/app.controller.ts
路由查询参数
路由查询参数是通过
@nestjs/common
中的 @Query
装饰器来实现的,这个装饰器可以接收一个参数,这个参数就是路由查询参数的名称。以下是一个简单的例子:src/app.controller.ts
创建项目,可以选择使用 yarn 或者 npm 或者 pnpm,我这里以使用 pnpm 为例
启动
上面启动命令在我们修改代码的时候,不会自动重启服务,这时候我们可以使用下面的命令启动服务,这样在修改代码的时候,服务会自动重启。
网页打开 http://localhost:3000/ 就可以看到我们的应用了。
目录介绍
这里主要核心目录在于
src
下:入口文件
main.ts
是应用的入口文件,主要用于创建应用实例,启动应用,监听端口等。后续可能会有一些全局的配置,也会在这里进行配置。如:全局的拦截器,全局的管道等。模块
app.module.ts
是应用的模块文件,主要用于配置应用的模块,以及模块之间的依赖关系。控制器
app.controller.ts
是应用的控制器文件,主要用于处理请求,返回响应。服务
app.service.ts
是应用的服务文件,主要用于处理业务逻辑。测试
app.controller.spec.ts
是应用的测试文件,主要用于测试控制器。可以先不用管这个文件,对于一些简单的应用,可能不需要测试,但是对于一些复杂的应用,测试是必不可少的。对于测试,我这里就不多说了,可以自行学习。这里需要的前置知识:
这个是一个测试框架,可以用于测试 JavaScript 和 TypeScript 代码。当然,你也可以选择忽略这个文件,不进行测试。
配置
配置文件
Nest.js 的配置文件是
nest-cli.json
,这个文件是在创建项目的时候自动生成的,这里可以配置一些项目的信息,如:项目名称,项目描述,作者,语言,包管理工具等。初始就按照这个原本配置就行了,后续有需要再进行修改。具体更多内容请查看 Nest.js 配置文件
环境变量
Nest.js 的环境变量是
.env
文件,这里可以配置一些环境变量,如:数据库地址,数据库用户名,数据库密码等。如果你要使用它,那么你要先安装一个依赖包:
然后在
app.module.ts
中引入:上述代码将从默认位置(项目根目录)载入并解析一个.env 文件,从.env 文件和 process.env 合并环境变量键值对,并将结果存储到一个可以通过 ConfigService 访问的私有结构。具体更多内容请查看 Nest.js 环境变量
路由
Nest.js
的路由是通过 @nestjs/common
中的 @Controller
装饰器来实现的,这个装饰器可以接收一个参数,这个参数就是路由的前缀,如果不传参数,那么默认就是 /
。 @nestjs/common
导出有多个不同应用的装饰器,下面一张表格形式做一个简单介绍:装饰器 | 说明 |
@Body() | 获取请求体 |
@Query() | 获取查询参数 |
@Param() | 获取路由参数 |
@Headers() | 获取请求头 |
@Req() | 获取请求对象 |
@Res() | 获取响应对象 |
@Session() | 获取 session 对象 |
以下是一个简单的例子
src/app.controller.ts
:常用命令
最后再介绍一些常用的命令,这些命令可以帮助我们快速生成一些代码。
快捷生成资源,可以生成控制器,服务,模块,实体,接口,管道,拦截器,过滤器,中间件,网关,装饰器等。
快捷生成资源,可以生成控制器,服务,模块,实体,接口,管道,拦截器,过滤器,中间件,网关,装饰器等。