[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"knowledge-\u002Fapi\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node":3,"knowledge-related-\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node":704,"knowledge-series-\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node":728},{"source":4,"connector":5,"page":6},"sqlite","better-sqlite3",{"path":7,"title":8,"description":9,"category":10,"tags":11,"date":13,"pinned":14,"draft":14,"body":15,"seo":700,"stem":701,"id":702,"extension":703},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node","Bun \u002F Deno \u002F Node 对比","三者均为 JavaScript\u002FTypeScript 运行时，设计取舍不同：Node.js 生态与生产验证最成熟；Deno 强调权限沙箱与 Web 标准 API；Bun 提供一体化工具链并持续兼容 Node API。涵盖对比表、命令速查、迁移提示与选型建议。见 后端入门概览。","技能小册",[12],"runtime","2024-04-23",false,{"type":16,"value":17,"toc":687},"minimark",[18,22,49,53,112,116,232,242,245,248,403,422,425,435,438,465,468,501,505,555,558,621,624,627],[19,20,8],"h1",{"id":21},"bun-deno-node-对比",[23,24,25,26,30,31,34,35,38,39,42,43,48],"p",{},"三者均为 ",[27,28,29],"strong",{},"JavaScript\u002FTypeScript 运行时","，设计取舍不同：",[27,32,33],{},"Node.js"," 生态与生产验证最成熟；",[27,36,37],{},"Deno"," 强调权限沙箱与 Web 标准 API；",[27,40,41],{},"Bun"," 提供一体化工具链并持续兼容 Node API。见 ",[44,45,47],"a",{"href":46},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbasics","后端入门概览","。",[50,51,52],"h2",{"id":52},"核心理念",[54,55,56,69],"table",{},[57,58,59],"thead",{},[60,61,62,66],"tr",{},[63,64,65],"th",{},"运行时",[63,67,68],{},"定位",[70,71,72,82,103],"tbody",{},[60,73,74,79],{},[75,76,77],"td",{},[27,78,33],{},[75,80,81],{},"事实标准服务端 JS 运行时，npm 生态最大",[60,83,84,88],{},[75,85,86],{},[27,87,37],{},[75,89,90,91,95,96,99,100],{},"默认安全、ESM、内置 ",[92,93,94],"code",{},"deno fmt\u002Flint\u002Ftest","，支持 ",[92,97,98],{},"npm:"," 与 ",[92,101,102],{},"deno.json",[60,104,105,109],{},[75,106,107],{},[27,108,41],{},[75,110,111],{},"内置运行时、包管理、打包、测试；目标兼容 Node 项目",[50,113,115],{"id":114},"技术特性概览","技术特性（概览）",[54,117,118,131],{},[57,119,120],{},[60,121,122,125,127,129],{},[63,123,124],{},"特性",[63,126,33],{},[63,128,37],{},[63,130,41],{},[70,132,133,147,160,178,196,210],{},[60,134,135,138,141,144],{},[75,136,137],{},"实现语言",[75,139,140],{},"主要 C++",[75,142,143],{},"Rust",[75,145,146],{},"Zig",[60,148,149,152,155,157],{},[75,150,151],{},"JS 引擎",[75,153,154],{},"V8",[75,156,154],{},[75,158,159],{},"JavaScriptCore",[60,161,162,165,168,175],{},[75,163,164],{},"默认权限",[75,166,167],{},"完整系统权限",[75,169,170,171,174],{},"沙箱，需 ",[92,172,173],{},"--allow-*"," 授权",[75,176,177],{},"完整系统权限（同 Node 模型）",[60,179,180,183,186,192],{},[75,181,182],{},"TypeScript",[75,184,185],{},"需工具链或 Node 22+ 实验性剥离",[75,187,188,189],{},"内置运行 ",[92,190,191],{},".ts",[75,193,188,194],{},[92,195,191],{},[60,197,198,201,204,207],{},[75,199,200],{},"模块",[75,202,203],{},"CommonJS + ESM",[75,205,206],{},"ESM 为主",[75,208,209],{},"ESM，兼容 Node 解析",[60,211,212,215,218,227],{},[75,213,214],{},"包管理",[75,216,217],{},"npm \u002F pnpm \u002F yarn",[75,219,220,223,224,226],{},[92,221,222],{},"deno add","、",[92,225,98],{}," 说明符",[75,228,229],{},[92,230,231],{},"bun install",[23,233,234,235,241],{},"具体兼容性与版本以各项目",[44,236,240],{"href":237,"rel":238},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease",[239],"nofollow","发布说明","为准，不宜用固定百分比概括。",[50,243,244],{"id":244},"常用命令速查",[23,246,247],{},"同一件事（初始化项目、安装依赖、运行文件、测试）在三者下的命令差异：",[54,249,250,264],{},[57,251,252],{},[60,253,254,257,260,262],{},[63,255,256],{},"操作",[63,258,259],{},"Node.js（配 pnpm）",[63,261,37],{},[63,263,41],{},[70,265,266,286,306,326,347,365,383],{},[60,267,268,271,276,281],{},[75,269,270],{},"初始化项目",[75,272,273],{},[92,274,275],{},"pnpm init",[75,277,278],{},[92,279,280],{},"deno init",[75,282,283],{},[92,284,285],{},"bun init",[60,287,288,291,296,301],{},[75,289,290],{},"安装依赖",[75,292,293],{},[92,294,295],{},"pnpm add axios",[75,297,298],{},[92,299,300],{},"deno add npm:axios",[75,302,303],{},[92,304,305],{},"bun add axios",[60,307,308,311,316,321],{},[75,309,310],{},"运行脚本",[75,312,313],{},[92,314,315],{},"node index.js",[75,317,318],{},[92,319,320],{},"deno run --allow-net index.ts",[75,322,323],{},[92,324,325],{},"bun index.ts",[60,327,328,331,342,345],{},[75,329,330],{},"运行 TS（无需编译）",[75,332,333,334,337,338,341],{},"需 ",[92,335,336],{},"tsx","\u002F",[92,339,340],{},"ts-node"," 或 Node 22+ 实验性支持",[75,343,344],{},"内置直接运行",[75,346,344],{},[60,348,349,352,355,360],{},[75,350,351],{},"测试",[75,353,354],{},"需 Jest\u002FVitest 等",[75,356,357],{},[92,358,359],{},"deno test",[75,361,362],{},[92,363,364],{},"bun test",[60,366,367,370,373,378],{},[75,368,369],{},"打包",[75,371,372],{},"需 esbuild\u002Fwebpack 等",[75,374,375],{},[92,376,377],{},"deno compile",[75,379,380],{},[92,381,382],{},"bun build",[60,384,385,388,391,400],{},[75,386,387],{},"格式化\u002FLint",[75,389,390],{},"需 Prettier\u002FESLint",[75,392,393,396,397],{},[92,394,395],{},"deno fmt"," \u002F ",[92,398,399],{},"deno lint",[75,401,402],{},"需外部工具（生态中）",[23,404,405,406,223,409,223,412,414,415,418,419,48],{},"Bun 与 Deno 都把「运行时 + 包管理 + 测试 + 部分工具链」内置到同一个二进制里，Node.js 则依赖社区工具组合（",[92,407,408],{},"pnpm",[92,410,411],{},"vitest",[92,413,336],{}," 等），这是三者「一体化程度」上的核心差异，也直接影响新项目的",[27,416,417],{},"启动成本","与",[27,420,421],{},"工具链一致性",[50,423,424],{"id":424},"性能",[23,426,427,428,431,432,48],{},"三者性能随版本、工作负载（CPU \u002F I\u002FO \u002F 启动）变化。",[27,429,430],{},"不宜","用未标明基准的「快 N 倍」作为选型依据。选型应结合压测、依赖兼容与运维经验；公开对比可参考各官方博客中的 ",[27,433,434],{},"benchmark 方法与版本号",[50,436,437],{"id":437},"安全",[439,440,441,459],"ul",{},[442,443,444,446,447,223,450,453,454,458],"li",{},[27,445,37],{},"：默认无文件\u002F网络\u002F环境变量访问，需显式 ",[92,448,449],{},"--allow-read",[92,451,452],{},"--allow-net"," 等（见 ",[44,455,457],{"href":456},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Fauth","Deno 权限","）。",[442,460,461,464],{},[27,462,463],{},"Node \u002F Bun","：与常规进程相同，默认可访问用户权限范围内的资源；需在容器、反向代理与代码审查层面保障安全。",[50,466,467],{"id":467},"生态与兼容",[439,469,470,475,491],{},[442,471,472,474],{},[27,473,33],{},"：npm 上绝大多数后端库以 Node 为首要目标。",[442,476,477,480,481,483,484,486,487,458],{},[27,478,479],{},"Deno 2+","：通过 ",[92,482,98],{}," 等方式使用 npm 包，并支持 ",[92,485,102],{}," 项目配置（见 ",[44,488,490],{"href":489},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Fpackage","Deno 依赖",[442,492,493,495,496,48],{},[27,494,41],{},"：持续实现 Node API 子集；迁移前应在目标版本下运行测试与",[44,497,500],{"href":498,"rel":499},"https:\u002F\u002Fbun.sh\u002Fdocs\u002Fruntime\u002Fnodejs-apis",[239],"兼容列表",[50,502,504],{"id":503},"适用场景建议","适用场景（建议）",[54,506,507,517],{},[57,508,509],{},[60,510,511,514],{},[63,512,513],{},"场景",[63,515,516],{},"倾向",[70,518,519,527,540,547],{},[60,520,521,524],{},[75,522,523],{},"企业级 API、大量 npm 原生 addon",[75,525,526],{},"Node.js LTS",[60,528,529,532],{},[75,530,531],{},"结构化后端、DI、OpenAPI",[75,533,534,535,539],{},"NestJS on Node（见 ",[44,536,538],{"href":537},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fbase","NestJS","）",[60,541,542,545],{},[75,543,544],{},"不可信脚本、教学、边缘",[75,546,37],{},[60,548,549,552],{},[75,550,551],{},"新项目验证、CLI、快速本地工具链",[75,553,554],{},"Bun（验证依赖后）",[50,556,557],{"id":557},"迁移与共存提示",[439,559,560,581,597,614],{},[442,561,562,565,566,569,570,573,574,337,577,580],{},[27,563,564],{},"Node → Bun","：多数纯 JS\u002FTS 项目可直接 ",[92,567,568],{},"bun install && bun run xxx"," 试跑，重点检查原生扩展（",[92,571,572],{},".node"," 二进制模块）、部分 ",[92,575,576],{},"worker_threads",[92,578,579],{},"cluster"," 高级用法的兼容性。",[442,582,583,586,587,590,591,593,594,596],{},[27,584,585],{},"Node → Deno","：需要把 ",[92,588,589],{},"require","\u002FCommonJS 逐步改为 ESM，网络\u002F文件访问需显式加 ",[92,592,173],{}," 权限参数；",[92,595,98],{}," 说明符可直接复用大部分 npm 包。",[442,598,599,602,603,337,606,609,610,613],{},[27,600,601],{},"三者共存","：同一台机器可通过 ",[92,604,605],{},"nvm",[92,607,608],{},"fnm","（Node）、官方安装脚本（Deno\u002FBun）并存管理版本；CI 中建议",[27,611,612],{},"锁定单一运行时","用于生产构建，本地验证阶段再对照跑其他运行时。",[442,615,616,617,620],{},"迁移前务必跑一遍现有测试套件与关键路径的压测，性能与兼容性问题往往在",[27,618,619],{},"具体依赖","而非运行时本身。",[50,622,623],{"id":623},"参考文献",[23,625,626],{},"以下链接在编写时均可正常访问：",[54,628,629,639],{},[57,630,631],{},[60,632,633,636],{},[63,634,635],{},"资料",[63,637,638],{},"说明",[70,640,641,653,664,675],{},[60,642,643,650],{},[75,644,645],{},[44,646,649],{"href":647,"rel":648},"https:\u002F\u002Fnodejs.org\u002Fdocs\u002Flatest\u002Fapi\u002F",[239],"Node.js 文档",[75,651,652],{},"官方",[60,654,655,662],{},[75,656,657],{},[44,658,661],{"href":659,"rel":660},"https:\u002F\u002Fdocs.deno.com\u002F",[239],"Deno 手册",[75,663,652],{},[60,665,666,673],{},[75,667,668],{},[44,669,672],{"href":670,"rel":671},"https:\u002F\u002Fbun.sh\u002Fdocs",[239],"Bun 文档",[75,674,652],{},[60,676,677,684],{},[75,678,679],{},[44,680,683],{"href":681,"rel":682},"https:\u002F\u002Fdeno.com\u002Fblog\u002Fv2.0",[239],"Deno 2 发布说明",[75,685,686],{},"npm 互操作",{"title":688,"searchDepth":689,"depth":689,"links":690},"",2,[691,692,693,694,695,696,697,698,699],{"id":52,"depth":689,"text":52},{"id":114,"depth":689,"text":115},{"id":244,"depth":689,"text":244},{"id":424,"depth":689,"text":424},{"id":437,"depth":689,"text":437},{"id":467,"depth":689,"text":467},{"id":503,"depth":689,"text":504},{"id":557,"depth":689,"text":557},{"id":623,"depth":689,"text":623},{"title":8,"description":9},"knowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node","knowledge\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun-deno-node.md","md",{"items":705},[706,711,714,717,720,724],{"path":707,"title":708,"description":709,"category":10,"score":710},"\u002Fknowledge\u002Fbooklet\u002Fframe\u002Fangular\u002Fperformance\u002Fruntime","运行时优化","在 变更检测 策略正确的前提下，减少模板计算与 DOM 规模。涵盖 OnPush、@for track、纯管道、虚拟滚动、懒加载、构建体积分析与常见性能陷阱。",4,{"path":712,"title":708,"description":713,"category":10,"score":710},"\u002Fknowledge\u002Fbooklet\u002Fframe\u002Fvue\u002Fperformance\u002Fruntime","减少不必要的渲染与响应式开销。构建侧见 build。",{"path":715,"title":708,"description":716,"category":10,"score":710},"\u002Fknowledge\u002Fbooklet\u002Fframe\u002Freact\u002Fperformance\u002Fruntime","减少不必要的组件重渲染与昂贵计算。涵盖重渲染成因、memo\u002FuseMemo\u002FuseCallback、虚拟滚动、Web Worker、Profiler 分析、最佳实践与常见坑。构建侧见 build。",{"path":46,"title":47,"description":718,"category":10,"score":719},"本目录覆盖 JavaScript\u002FTypeScript 服务端运行时与框架、数据存储，以及 Rust 系统编程入门，提供从零到部署的完整学习路径。前置建议：JavaScript 基础、工程化 · 环境变量。",3,{"path":721,"title":722,"description":723,"category":10,"score":719},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun\u002Fbase","Bun 基础与核心命令","Bun 是用 Zig 编写的 JavaScript 运行时，内置包管理（bun install）、打包（bun build）、测试（bun test）等，并持续兼容 Node.js API。本文介绍核心特点、安装方式，以及日常最常用的命令与包管理功能。见 运行时对比。",{"path":725,"title":726,"description":727,"category":10,"score":719},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun\u002Fhttp","HTTP 服务器","Bun 内置了高性能的 HTTP 服务器，通过 Bun.serve 可以轻松启动服务。从 Bun v1.2.3 开始，推荐使用 routes 对象来定义路由，更加直观和灵活。",{"series":729,"title":730,"items":731,"index":991,"prev":992,"next":993},"booklet\u002Fend","end",[732,736,740,743,747,751,754,758,760,761,765,766,770,774,778,782,786,790,794,798,802,806,810,814,818,822,826,830,834,838,842,846,850,854,858,862,865,869,871,875,879,883,887,891,895,899,903,907,911,915,919,923,927,931,935,938,942,946,949,953,956,960,964,968,972,976,980,983,987],{"path":733,"title":734,"date":735,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fasync","第九章：并发与异步","2020-05-22",{"path":737,"title":738,"date":739,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fasync","异步编程与模式","2025-08-20",{"path":456,"title":741,"date":742,"pinned":14},"权限模型","2021-04-01",{"path":744,"title":745,"date":746,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fauth","认证与授权","2025-12-23",{"path":748,"title":749,"date":750,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fbase","Rust 基础","2020-07-21",{"path":537,"title":752,"date":753,"pinned":14},"NestJS 基础","2021-03-09",{"path":755,"title":756,"date":757,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Fbase","Deno 基础","2026-06-01",{"path":721,"title":722,"date":759,"pinned":14},"2026-07-23",{"path":46,"title":47,"date":759,"pinned":14},{"path":762,"title":763,"date":764,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fbuffer","缓冲区","2025-01-30",{"path":7,"title":8,"date":13,"pinned":14},{"path":767,"title":768,"date":769,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fcache","缓存","2025-07-04",{"path":771,"title":772,"date":773,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fconfig","配置管理（Config 模块）","2023-08-26",{"path":775,"title":776,"date":777,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fcontroller","控制器与路由","2020-07-18",{"path":779,"title":780,"date":781,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fcore","第三章：所有权、借用与生命周期（核心）","2023-05-09",{"path":783,"title":784,"date":785,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fcron","定时任务","2023-04-12",{"path":787,"title":788,"date":789,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fcustom-decorators","自定义装饰器","2021-09-19",{"path":791,"title":792,"date":793,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fdata-type","第四章：复合数据类型","2021-02-24",{"path":795,"title":796,"date":797,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fdatabase","数据库集成（以 TypeORM 为例）","2023-05-26",{"path":799,"title":800,"date":801,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fdatabase","数据库的配置","2024-06-22",{"path":803,"title":804,"date":805,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fdemo","入手Demo","2022-10-15",{"path":807,"title":808,"date":809,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fdeploy","部署与运维","2023-01-24",{"path":811,"title":812,"date":813,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fbun\u002Fdeploy","生产环境与部署指南","2024-08-31",{"path":815,"title":816,"date":817,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fdocs","第八章：测试、文档与质量","2026-01-11",{"path":819,"title":820,"date":821,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fejs","EJS","2019-11-03",{"path":823,"title":824,"date":825,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fenv","环境加载","2024-09-01",{"path":827,"title":828,"date":829,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Ferror","异常处理","2020-01-28",{"path":831,"title":832,"date":833,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Ferror","错误处理与健壮性","2021-01-24",{"path":835,"title":836,"date":837,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Ferror","第五章：错误处理","2023-11-03",{"path":839,"title":840,"date":841,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fbase\u002Fevent","事件驱动与非阻塞 I\u002FO 模型","2020-06-20",{"path":843,"title":844,"date":845,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fbase\u002Fevent-loop","事件循环","2024-11-20",{"path":847,"title":848,"date":849,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fexce","异常处理器","2026-03-17",{"path":851,"title":852,"date":853,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fexpress","Express","2022-01-24",{"path":855,"title":856,"date":857,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Ffs","文件系统","2026-06-04",{"path":859,"title":860,"date":861,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fguards","守卫 (Guards) 与授权","2023-09-09",{"path":863,"title":726,"date":864,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Fhttp","2020-12-11",{"path":866,"title":867,"date":868,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fhttp","网络编程","2023-01-27",{"path":725,"title":726,"date":870,"pinned":14},"2026-07-12",{"path":872,"title":873,"date":874,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Finfo","归档说明（before\u002F）","2023-08-31",{"path":876,"title":877,"date":878,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Finit","项目初始化与基础命令","2025-02-14",{"path":880,"title":881,"date":882,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Finjectable","操作日志拦截器","2020-02-20",{"path":884,"title":885,"date":886,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Finstall","安装与环境","2021-02-05",{"path":888,"title":889,"date":890,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fintercept","拦截器 (Interceptors)","2021-04-26",{"path":892,"title":893,"date":894,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fitc","统一响应格式拦截器","2023-08-17",{"path":896,"title":897,"date":898,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fjwt","JWT 与 Passport 授权","2021-08-10",{"path":900,"title":901,"date":902,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Flogger","日志记录","2022-10-10",{"path":904,"title":905,"date":906,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fmi","Nest 中间件","2022-06-21",{"path":908,"title":909,"date":910,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fmiddleware","中间件 (Middleware)","2021-11-26",{"path":912,"title":913,"date":914,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fbase\u002Fmodule","模块系统","2020-07-01",{"path":916,"title":917,"date":918,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fmodule","模块系统与依赖注入","2022-06-15",{"path":920,"title":921,"date":922,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs","NestJS 导读","2025-06-21",{"path":924,"title":925,"date":926,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fnext","路由守卫","2022-12-01",{"path":928,"title":929,"date":930,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fother","其他常用模块","2020-03-27",{"path":932,"title":933,"date":934,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Fother","其他配置","2022-02-08",{"path":936,"title":933,"date":937,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fbefore\u002Fother","2022-05-23",{"path":939,"title":940,"date":941,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fother","第十章：进阶特性与模式","2023-12-29",{"path":943,"title":944,"date":945,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Fpackage","第七章：模块系统与包管理","2024-05-26",{"path":489,"title":947,"date":948,"pinned":14},"包管理与依赖","2024-07-21",{"path":950,"title":951,"date":952,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fpath","路径处理","2024-03-14",{"path":954,"title":955,"date":777,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fpipes","管道 (Pipes) 与数据验证",{"path":957,"title":958,"date":959,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fprocess","进程与子进程","2023-11-10",{"path":961,"title":962,"date":963,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fqueue","队列（Bull）","2021-07-01",{"path":965,"title":966,"date":967,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fservice","提供者与服务","2024-12-02",{"path":969,"title":970,"date":971,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fcore\u002Fstream","流","2022-05-03",{"path":973,"title":974,"date":975,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Ft","泛型与 Trait","2024-10-31",{"path":977,"title":978,"date":979,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fdeno\u002Ftools","内置工具链","2026-01-24",{"path":981,"title":982,"date":813,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Frust\u002Ftype","第二章：基础语法与类型",{"path":984,"title":985,"date":986,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnodejs\u002Fbase\u002Fvar","全局对象与变量","2025-01-03",{"path":988,"title":989,"date":990,"pinned":14},"\u002Fknowledge\u002Fbooklet\u002Fend\u002Fnestjs\u002Fnew\u002Fwebsocket","WebSocket（网关）","2022-12-14",10,{"path":762,"title":763,"date":764,"pinned":14},{"path":767,"title":768,"date":769,"pinned":14}]