初识nestjs
NestJS是一个基于Node.js的渐进式框架,用于构建高效、可扩展的服务器端应用程序。它结合了现代化的JavaScript(或TypeScript)语言特性和面向对象的编程概念,提供了一种优雅而强大的开发方式。
NestJS采用了模块化的架构,使开发者能够轻松地组织代码和功能。它内置了强大的依赖注入(Dependency Injection)系统,简化了组件之间的耦合关系,提供了更好的可测试性和可维护性。
通过使用NestJS,开发者可以快速构建可伸缩的应用程序,支持各种功能,如路由管理、中间件、异常处理、认证和授权等。它还提供了与各种数据库和其他第三方库的无缝集成,方便开发者使用他们熟悉的工具和技术栈。
在这个【NestJS学习日记】系列中,我们将一起探索NestJS框架的各个方面,从基本概念到高级用法,逐步深入学习和实践。让我们一起开始这个令人兴奋的旅程,掌握NestJS的技能,构建出更加可靠、可扩展的应用程序!
作者:markzzw 时间:2024-1-29
线上代码:CodeSandbox
工具
node环境
需要下载node的环境,请自行搜索 mac,windows,linux 的安装方法。
编写工具
- vscode,常规的js编辑器,可以编辑js文件和直接在命令行运行脚本命令
- 线上编写器,这里推荐使用CodeSandbox
API访问工具
推荐使用postman,免费并且网上教程很多的一个工具。
安装 nestjs
css
npm i -g @nestjs/cli
创建第一个nestjs项目
arduino
nest new project-name
目录结构
scss
-----src
|--app.controller.spec.ts // 单元测试文件
|--app.controller.ts // 模块路由控制文件
|--app.module.ts // 模块配置文件
|--app.service.ts // 模块数据处理文件
|--main.ts // 主文件,启动文件
main.ts
js
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
// 启动函数
async function bootstrap() {
const app = await NestFactory.create(AppModule); // 创建服务
await app.listen(3000);
}
bootstrap(); // 运行启动函数
必要的运行命令
package.json
json
{
"scripts": {
"build": "nest build", // npm run build 构建打包
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", // npm run format 格式化代码
"start": "nest start", // npm run start 运行 nest 服务 只构建一次
"start:dev": "nest start --watch", // npm run start 运行 nest 服务 启用监听模式 更改文件重新构建
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", // 检测代码是否合规
"test": "jest", // 运行单元测试
"test:watch": "jest --watch", // 运行单元测试 启用监听模式 更改之后重新运行单元测试
"test:cov": "jest --coverage", // 运行单元测试 并输出单元测试覆盖率报告
},
}
在学习阶段建议运行 npm run start:dev
这样子方便进行更改后的查看。
运行启动
arduino
npm run start:dev
随后打开浏览器查看 localhost:3000
,或者在postman中输入 localhost:3000
,就能查看到初始样例代码返回的 hello world 字样。