NestJs 入门
前言
- NestJS 是一个基于Node.js平台的开发框架,它使用TypeScript编写并且受到了Angular的启发,提供了强大的依赖注入系统,结合了面向对象编程、函数式编程和函数式响应式编程的原则,使开发人员可以编写可测试、低耦合的代码。
- NestJS 提供了一种现代化的、可扩展的模块化的架构,包含控制器、服务、中间件和其他功能模块,用于构建高效、可维护的应用程序。
- NestJS 还集成了一系列常用的功能模块,例如路由、身份验证、日志记录和数据库访问等,可以通过简单地配置这些功能模块来快速构建功能强大的应用程序。
先决条件
nodejs >= 12, v13 版本除外
window版本
1.点击下载node.js
2.安装 Node.js
3.CMD 可以打印出这个说明安装成功。
部分系统需要重启后环境变量才生效,如果不会配置环境变量请直接默认安装。
$node -v
v16.18.1
$ npm -v
7.x.x
Nest cli 安装
在确保安装好 node 环境及 npm 后,使用管理员权限在终端命令行进行全局安装nestjs cli
,并通过nest new
创建 Nest 项目:
npm i -g @nestjs/cli
nest new project-name
要创建启用 TypeScript
strict
模式的新项目,请将--strict
标志传递给nest new
命令
该指令会创建一个名为project-name
的nest模板项目,并将创建一个 src
目录,目录中包含以下几个核心文件:
src
├── app.controller.spec.ts
├── app.controller.ts
├── app.module.ts
├── app.service.ts
└── main.ts
以下是这些核心文件的简要概述:
文件 | 概述 |
---|---|
app.controller.ts | 带有单个路由的基本控制器示例。 |
app.controller.spec.ts | 对于基本控制器的单元测试样例 |
app.module.ts | 应用程序的根模块。 |
app.service.ts | 带有单个方法的基本服务 |
main.ts | 应用程序入口文件。它使用 NestFactory 用来创建 Nest 应用实例。 |
main.ts
整个程序的入口点,它负责启动应用程序并配置应用程序的路由和中间件,包含一个异步函数,它负责引导我们的应用程序:
main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000,() => {
console.log('Application is running on port 3000');
});
}
bootstrap();
在main.ts
中,创建了一个 Nest
应用实例,使用了 NestFactory
核心类(详解),它是 NestJS
框架的核心类之一,它提供了一个用于创建应用程序的静态方法 create()
,它接收一个根模块作为参数,并返回一个实现 INestApplication
接口的应用程序实例(该实例提供了一组可用的方法,后面的学习中对这些方法进行详细描述与记录),它的listen()
方法用于启动应用程序并开始监听指定的端口,listen()
方法接受两个参数:端口号和可选的回调函数,端口号是应用程序监听的端口,回调函数是一个可选的回调函数,在应用程序成功启动后将被调用。
具体而言,main.ts
文件通常会进行以下操作:
- 创建一个类似于
Express
的应用程序对象。- 配置应用程序的路由。这可能包括定义各种HTTP请求方法(如GET、POST、PUT、DELETE)的路由处理程序。
- 配置应用程序的中间件。中间件是在请求到达路由处理程序之前执行的函数,它可以用于处理身份验证、日志记录、错误处理等操作。
- 启动应用程序监听指定的端口,以便接收来自客户端的HTTP请求。
运行应用程序
cd进入新建项目project-name
中,执行npm i
安装node_modules
以来模块
安装过程完成后,您可以在系统命令行工具中运行以下命令,以启动应用程序:
npm run start
此命令启动 HTTP 服务监听定义在 src/main.ts 文件中定义的端口号。在应用程序运行后, 打开浏览器并访问 http://localhost:3000/。 即可看到 Hello world! 信息。
要监听文件中的更改,您可以运行以下命令来启动应用程序:
npm run start:dev
此命令将监听您的文件,自动重新编译并重新加载服务器。