# nest-study **Repository Path**: yin-chunyang/nest-study ## Basic Information - **Project Name**: nest-study - **Description**: nest学习仓库,文字限制什么啊 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-12-17 - **Last Updated**: 2025-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nestjs顺序 - `Request`=>`Middleware`=>`Guard`=>`Pipe`=>`Before Interceptor`=>`Router handler`=>`After Interceptor`=>`Exception filter`=>`Response` - 请求 => 中间件 => 守卫 => 管道 => 拦截器前 => 路由处理请求 => 拦截器后 => 异常过滤器 => 响应 # 配置热更新 nodemon插件 在根目录添加`nodemon.json`配置热更新信息 ```json { "watch":["./*"], "ext":"ts,js,json", "ignore":["node_modules"] } ``` - watch 监听那个文件变化 - ext 监听什么文件 - ignore 忽略那些文件 # package-script脚本和tsconfig 用于源码和node_modules切换测试 ```json { "compilerOptions": { "experimentalDecorators": true, //支持stage0,1,2 "emitDecoratorMetadata": true, // 支持stage0,1,2 // stage3 注释掉 experimentalDecorators emitDecoratorMetadata,设置编辑器ts检索服务为node_modules安装的版本 // vscode:`文件->首选项->设置->搜索tsdk->输入框内改为./node_modules/typescript/lib` "target":"ES2021", // "target":"ESNext", "moduleResolution": "NodeNext", "module": "NodeNext", "types": ["node"], "baseUrl":"./", "paths":{ "@nestjs/*":["@nestjs/*"] } } } ``` - baseUrl 基本地址基于那个路径 - paths 里边配置在引入资源时匹配的替换为对应的值路径 ## 需要在package中添加命令 `"dev03:dev": "nodemon ./03_controllers/src/main.ts"` 这个命令表示运行该文件夹的项目,不会解析`tsconfig.json`;在运行时注释tsconfig,json中的`baseUrl`,`paths['@nestjs/*']` --- `"dev03:dev-tsconfig": "nodemon -r tsconfig-paths/register ./03_controllers/src/main.ts"` 这个命令表示运行非node_module当中的@nestjs/**, 运行tsconfig.json配置的`paths:{"@nestjs/*":["src/@nestjs/*"]}` ```json { "name": "01_starter", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev01": "ts-node ./01_starter/src/main.ts", "dev03": "ts-node ./03_controllers/src/main.ts", "dev03:dev": "nodemon ./03_controllers/src/main.ts", "dev03:dev-tsconfig": "nodemon -r tsconfig-paths/register ./03_controllers/src/main.ts", "dev04": "ts-node ./04_stage3/src/main.ts", "dev04:dev": "nodemon ./04_stage3/src/main.ts", "dev04:dev-tsconfig": "nodemon -r tsconfig-paths/register ./04_stage3/src/main.ts", "dev06:dev": "nodemon ./06_providers/src/main.ts", "dev06:dev-tsconfig": "nodemon -r tsconfig-paths/register ./06_providers/src/main.ts", "dev07:dev": "nodemon ./07_Modules/src/main.ts", "dev07:dev-tsconfig": "nodemon -r tsconfig-paths/register ./07_Modules/src/main.ts" }, "author": "", "license": "ISC", "dependencies": { "@nestjs/common": "^10.4.15", "@nestjs/core": "^10.4.15", "@nestjs/platform-express": "^10.4.15", "@types/node": "^22.10.2", "cli-color": "^2.0.4", "express": "^4.21.2", "express-session": "^1.18.1", "nodemon": "^3.1.9", "os": "^0.1.2", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", "ts-node": "^10.9.2", "typescript": "^5.7.2" }, "devDependencies": { "tsconfig-paths": "^4.2.0" } } ``` ## typescript检查服务 编辑器的ts检查jdk切换可点击编辑器右下角 `{}` 符号根据指引切换 通常都是按照node_modules内`typescript`包的版本 ## 新老版本装饰器stage3装饰器 新版本装饰器切换typescript版本5.x+ tsconfig.json注释掉experimentalDecorators、emitDecoratorMetadata或设置false