【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 字样。

相关推荐
Csvn1 小时前
WASM
前端
修己xj2 小时前
我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了
前端
FRing032 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿3 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
moshuying4 小时前
网购能买Token了!
前端
h_65432104 小时前
echarts实现柱状图加一条横线
前端·echarts
风骏时光牛马5 小时前
生成一个后端标题,只需要一个标题,不需要其他的任何文本。
前端
子非鱼@Itfuture5 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李5 小时前
openFeign入门
java·开发语言·前端
馒头不想说话5 小时前
AI当运营,帮你省人力
前端