【Nestjs学习日记】初识nestjs

初识nestjs

NestJS是一个基于Node.js的渐进式框架,用于构建高效、可扩展的服务器端应用程序。它结合了现代化的JavaScript(或TypeScript)语言特性和面向对象的编程概念,提供了一种优雅而强大的开发方式。

NestJS采用了模块化的架构,使开发者能够轻松地组织代码和功能。它内置了强大的依赖注入(Dependency Injection)系统,简化了组件之间的耦合关系,提供了更好的可测试性和可维护性。

通过使用NestJS,开发者可以快速构建可伸缩的应用程序,支持各种功能,如路由管理、中间件、异常处理、认证和授权等。它还提供了与各种数据库和其他第三方库的无缝集成,方便开发者使用他们熟悉的工具和技术栈。

在这个【NestJS学习日记】系列中,我们将一起探索NestJS框架的各个方面,从基本概念到高级用法,逐步深入学习和实践。让我们一起开始这个令人兴奋的旅程,掌握NestJS的技能,构建出更加可靠、可扩展的应用程序!

作者:markzzw 时间:2024-1-29

线上代码:CodeSandbox

Github:zhangzewei/nest-learning-tutorial

工具

node环境

需要下载node的环境,请自行搜索 mac,windows,linux 的安装方法。

编写工具

  1. vscode,常规的js编辑器,可以编辑js文件和直接在命令行运行脚本命令
  2. 线上编写器,这里推荐使用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 字样。

相关推荐
颜正义几秒前
作为前端你还不会 Playwright 进行单元测试吗?
前端·测试
孟陬1 分钟前
国外技术周刊 #3:“最差程序员”带动高效团队、不写代码的创业导师如何毁掉创新…
前端·后端·设计模式
张一凡933 分钟前
easy-model -- "小而美"的React状态管理方案
前端·javascript·react.js
前端Hardy4 分钟前
纯 HTML/CSS/JS 实现的高颜值登录页,还会眨眼睛!少女心爆棚!
前端·javascript·vue.js
includei5 分钟前
【JavaScript】华为机试_HJ20_密码验证合格程序
开发语言·javascript·华为
猪八宅百炼成仙38 分钟前
解决Vue项目中scrollIntoView导致的布局异常问题
前端
miss1 小时前
Vue2 → Vue3 深度对比:8 大核心优化,性能提升 2 倍
前端·vue.js·架构
沫离痕1 小时前
AI机器人客服-Dify接入
开发语言·javascript·ecmascript
绝世唐门三哥1 小时前
React---数组浅拷贝之slice的使用
前端·reactjs
傅里叶1 小时前
Flutter开发的app,实现Google 登录
前端·flutter