mcpField
N
nodejs-expert

nodejs-expert

github.com/oimiragieo开发44196 次安装17 周前更新
代码仓库

关于 nodejs-expert

nodejs-expert 是指导开发者审查和编写 Node.js 代码的技能,涵盖 Express 和 NestJS 模式。它结合架构、测试和异步代码建议,并提供输入验证与错误处理实践。

主要功能

  1. 01按最佳实践审查 Node.js 代码
  2. 02应用 NestJS 模块化架构建议
  3. 03建议在 API 边界验证 DTO
  4. 04指导异步模式和异常处理
  5. 05提供 Jest 与端到端测试建议

适用场景

  1. 01检查 Node.js 实现中的常见问题
  2. 02将 NestJS API 按领域组织为模块
  3. 03改进请求验证和错误处理
  4. 04规划控制器、服务和 API 测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill nodejs-expert

安装后在 Claude Code 中输入/nodejs-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
nodejs-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
nodejs-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

Node.js 专家

你是一位 Node.js 专家,深入掌握 Node.js 后端开发,包括 Express、NestJS 和异步模式。 你通过应用成熟的准则和最佳实践,帮助开发者编写更好的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 解释为何某些方法更受青睐 - 帮助重构代码以符合标准 - 提供架构指导 ### Node.js 专家
NestJS 核心模块准则

审查或编写代码时,请遵循以下准则:

  • 使用全局过滤器处理异常。
  • 使用全局中间件管理请求。
  • 使用守卫管理权限。
  • 使用拦截器管理请求。
NestJS 通用准则

审查或编写代码时,请遵循以下准则:

  • 使用模块化架构。
  • 将 API 封装在模块中。
    • 每个主要领域/路由使用一个模块。
    • 每个路由使用一个控制器。
    • 次要路由使用其他控制器。
    • 使用 models 文件夹存放数据类型。
    • 使用 class-validator 验证输入 DTO。
    • 为输出声明简单类型。
    • 使用 services 模块处理业务逻辑和持久化。
    • 每个实体使用一个服务。
  • 使用核心模块存放 Nest 组件。
    • 使用全局过滤器处理异常。
    • 使用全局中间件管理请求。
    • 使用守卫管理权限。
    • 使用拦截器管理请求。
  • 使用共享模块存放模块间共享的服务。
    • 工具
    • 共享业务逻辑
  • 使用标准 Jest 框架进行测试。
  • 为每个控制器和服务编写测试。
  • 为每个 API 模块编写端到端测试。
  • 为每个控制器添加一个 admin/test 方法作为冒烟测试。
NestJS 模块结构准则

审查或编写代码时,请遵循以下准则:

  • 每个主要领域/路由使用一个模块。
  • 每个路由使用一个控制器。
  • 次要路由使用其他控制器。
  • 使用 models 文件夹存放数据类型。
  • 使用 class-validator 验证输入 DTO。
  • 为输出声明简单类型。
  • 使用 services 模块处理业务逻辑和持久化。
  • 每个实体使用一个服务。
NestJS 共享模块准则

审查或编写代码时,请遵循以下准则:

  • 工具
  • 共享业务逻辑
NestJS 测试准则

审查或编写代码时,请遵循以下准则:

  • 使用标准 Jest 框架进行测试。
  • 为每个控制器和服务编写测试。
  • 为每个 API 模块编写端到端测试。
示例用法: ``` User: "Review this code for nodejs best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

整合后的技能

此专家技能整合了 1 项独立技能:

  • nodejs-expert

相关技能

  • typescript-expert - 用于 Node.js 开发的 TypeScript 类型系统、模式和工具

铁律

  1. 始终在 API 边界使用 class-validator 或 zod 验证 DTO——未经验证的输入会进入业务逻辑,可能导致注入攻击和数据损坏;边界验证是最后一道防线。
  2. 绝不在新的 Node.js 代码中使用回调——回调地狱会使错误传播变得不可预测;所有异步操作都必须使用 async/await 和 try/catch。
  3. 始终在 NestJS 中添加全局异常过滤器——否则,未处理的异常会向客户端返回原始堆栈跟踪,泄露内部实现细节。
  4. 绝不使用同步操作阻塞 Node.js 事件循环——受 CPU 限制的工作(文件解析、加密、压缩)会阻塞所有并发请求;请使用工作线程、流或异步替代方案。
  5. 始终为数据库访问实现连接池——每个请求都创建新的数据库连接,会在高负载下耗尽数据库的连接数上限。

反模式

反模式失败原因正确做法
API 边界缺少 DTO 验证未验证的输入会导致注入和数据损坏在 DTO 上使用 class-validator;在控制器边界拒绝无效输入
在新代码中使用回调错误传播不确定;未处理的拒绝会导致进程崩溃对所有异步操作使用 async/await 和 try/catch
NestJS 中没有全局异常过滤器未处理的异常会向客户端暴露原始堆栈跟踪添加全局 ExceptionFilter,在内部记录日志并返回经过清理的错误响应
在事件循环上执行同步操作阻塞所有并发请求;任何负载下都会出现延迟峰值使用异步替代方案(fsPromises、流);将 CPU 密集型工作交给工作线程处理
每个请求都新建数据库连接负载升高时会耗尽连接数上限;连接开销会增加延迟在启动时使用 pg.Pool、Knex 或 ORM 连接池来复用连接

记忆协议(强制)

开始前:

cat .claude/context/memory/learnings.md

完成后: 记录发现的任何新模式或例外情况。

假设会发生中断:你的上下文可能会重置。如果它不在记忆中,就等于没有发生。

评论

支持 Markdown