一、Nest是什么
Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用的框架。它使用渐进式 JavaScript,构建并完全支持 TypeScript(但仍然允许开发者使用纯 JavaScript 进行编码)并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式反应式编程)的元素。
Nest 使用了强大的 HTTP 服务器框架,如 Express(默认),也可以选择配置为使用 Fastify!
Nest 在这些常见的 Node.js 框架(Express/Fastify)之上提供了一个抽象级别,但也直接向开发者公开了它们的 API。这使开发者可以自由使用可用于底层平台的无数第三方模块。Nest 提供开箱即用的应用架构,允许开发者和团队创建高度可测试、可扩展、松耦合且易于维护的应用。该架构深受 Angular 的启发。
在 Nest.js 中,使用控制器(Controller)和服务(Service)的组合是一种推荐的架构模式。控制器负责处理客户端的请求和响应,而服务则负责处理具体的业务逻辑。这种模式的好处是将请求处理和业务逻辑分离,使代码更具可读性、可维护性和可测试性。
二、了解一下express
Express.js 是一个基于 Node.js 的 Web 应用程序框架,可以被视为对 Node.js 的封装。Express.js 提供了简化和抽象化的 API,使得在 Node.js 上构建 Web 应用程序变得更加简单和高效。
Node.js 本身提供了处理网络请求和构建 Web 服务器的能力,但它的 API 相对底层,需要开发者手动处理很多细节。而 Express.js 通过封装 Node.js 的功能,提供了更高层次的抽象和开发工具,使得构建 Web 应用程序变得更加便捷。
// Express 实现一个请求
const express = require('express');
const app = express();
app.get('/test', (request, response) => {
response.send('hello world');
});
app.listen(3000)
Nest.js 基于 Express.js 提供了更高层次的抽象和功能扩展。它引入了一些新的概念,如模块、控制器和中间件,以帮助开发者更好地组织和管理代码。Nest.js 还提供了一套强大的依赖注入系统,可以帮助解耦组件之间的依赖关系,并方便进行单元测试。
三、Nest.js 优势
四、Nest的安装和项目创建
1.通过脚手架 nest-cli创建项目
npm i -g @nestjs/cli
这里可以通过如下命令新建项目:
nest new project-name
或者使用typescript
nest new project-name --strict
2.自己安装核心的依赖并创建项目
你还可以通过使用 npm(或 yarn)安装核心和支持文件来从头开始手动创建新项目。在这种情况下,当然,你将负责自己创建项目样板文件。
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata
五、启动项目
进入项目并执行命令:
npm run start
想要监视文件中的更改,热更新服务器,你可以运行以下命令来启动应用:
$ npm run start:dev