Nest.js 基础-8-Hello,NestJS

这一篇使用 NestJS CLI 初始化项目,详解项目目录结构、核心配置、运行脚本,跑通第一个经典的 Hello World建立对 NestJS 项目的整体认知。

一、项目初始化与整体目录概述

通过 NestJS CLI 快速初始化空白项目,初始化完成后使用 VS Code 打开工程目录即可开始开发。NestJS 官方预设了标准化的项目目录结构,同时内置了代码规范、格式化、测试等工具,开箱即用。

项目核心目录及工具整体分工清晰,核心结构如下:

  • src 目录:项目核心源代码存放目录,所有业务代码均在此编写

  • node_modules 目录:存放项目所有第三方依赖包,自动安装生成

  • test 目录:项目测试文件目录,用于编写单元测试、端到端(E2E)测试

同时,NestJS 初始化项目默认集成两套开发必备工具:

  • Jest 测试框架:无需额外配置,支持自动化测试,满足后端项目测试规范要求

  • ESLint + Prettier:代码规范检查与代码格式化工具,配合 VS Code 对应插件,可实现代码自动校验、统一代码风格,规避不规范代码

二、核心文件与配置详解

NestJS 项目的配置文件各司其职,理解核心文件的作用,是掌握 NestJS 开发的基础。

1. 项目运行核心

  • nest-cli.json:NestJS 脚手架核心配置文件,用于配置项目编译、构建、CLI 命令相关规则,是项目的核心框架配置

  • package.json:Node.js 项目标配配置文件,记录项目名称、版本、所有依赖包、自定义运行脚本命令,是项目依赖管理和脚本执行的核心

2. TypeScript 配置文件

  • tsconfig.json:全局 TypeScript 基础配置,定义项目 TS 编译规则、语法兼容、路径别名等基础配置

  • tsconfig.build.json:专属构建配置文件,仅在项目打包、编译上线时生效,区别于开发环境的 TS 配置,优化生产构建效率

3. 开源许可证配置

正规开源/商用项目都需要配置开源许可证,NestJS 项目默认可自定义证书协议,主流两种协议区别如下:

  • MIT 协议:最灵活、使用最广泛的协议,允许项目商业化使用,无强制开源约束,适合绝大多数企业级项目

  • GPL 协议:具备"传染性",使用该协议的项目,衍生项目必须强制开源,Linux 系统即采用此协议,商用项目慎用

VS Code 可通过插件快速配置证书:

  1. Choose a License:快速生成项目根目录 LICENSE 文件,一键选择 MIT、GPL 等主流协议

  2. Licenser :支持单个/批量文件头部插入许可证信息,通过命令面板执行 Insert License Header 命令即可添加;可在 VS Code 用户配置中预设作者、许可证信息,实现工作区所有文件批量添加证书头部

三、项目运行脚本与启动方式

NestJS 在 package.json 中预设了三套核心运行脚本,适配开发、调试、生产三种场景,日常开发高频使用。

运行脚本 运行场景 核心特性
pnpm start:dev 开发环境 支持文件热更新,修改代码无需重启项目,开发效率最高
pnpm start 生产环境 打包编译后启动,性能优化,用于项目上线部署
pnpm start:debug 调试环境 开启调试模式,支持断点调试,适配问题排查

启动 Hello World 项目

执行开发环境启动命令:pnpm start:dev,项目默认在 3000 端口启动。

端口配置核心入口为项目根文件 main.ts ,文件中 app.listen(3000) 方法定义了项目监听端口,可根据需求自定义修改。

项目启动成功后,浏览器访问 localhost:3000,即可看到默认响应内容:Hello World,至此第一个 NestJS 应用运行成功!

四、src 核心目录结构深度解析

src 是项目的核心业务目录,默认生成三个核心文件,也是 NestJS 模块化架构的基础组成部分,理解这三个文件的分工,就能掌握 NestJS 最核心的开发思想。

  • app.controller.ts(控制器):负责接收客户端请求、定义路由、返回响应结果,是请求的入口层,所有路由接口都在此定义

  • app.service.ts(服务层) :负责编写核心业务逻辑、数据处理、数据库交互,控制器只负责请求转发,不处理业务逻辑,实现路由与业务解耦

  • app.module.ts(根模块):项目根模块,是整个应用的结构组织者,统一管理控制器、服务、依赖注入等资源

五、NestJS 核心设计思想:模块化架构

NestJS 框架规定项目所有功能、所有业务逻辑都必须通过模块进行组织和管理。

这种架构模式解决项目代码混乱、耦合度高、难以维护的问题,让代码结构分层清晰、职责单一,极大提升了项目的可维护性、可扩展性,完美适配中大型后端项目、团队协作开发以及微服务架构。

相关推荐
Larcher1 小时前
从 0 到 1:用 Bun + axios 快速搭建 LLM API 客户端
前端·javascript
子午1 小时前
基于DeepSeek的酒店客房管理系统~Python+DeepSeek智能问答+Vue3+Web网站系统
开发语言·前端·python
ghie90901 小时前
基于 MATLAB 的序贯蒙特卡洛概率假设密度多目标跟踪实现
开发语言·matlab·目标跟踪
我命由我123451 小时前
Java 开发 - Jar 包与 War 包
java·开发语言·java-ee·intellij-idea·jar·idea·intellij idea
峰上踏雪1 小时前
Windows 下最推荐的 Qt + VS2026 + CMake 开发方案
开发语言·windows·qt
楼田莉子1 小时前
C++20新特性:协程
开发语言·c++·后端·学习·c++20
xiaoshuaishuai82 小时前
C# AvaloniaUI 中旋转
开发语言·c#
Dream_ksw2 小时前
Python 基础
开发语言·python
weixin_428005302 小时前
C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战-实现计算器工具
开发语言·学习·c#·functioncalling·ai实现计算器工具