catalog/repos/9tykeshav--mern-ninja-cc.md

149 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MERN全栈开发插件
`MERN` `MongoDB` `Express` `React` `Node.js` `Claude Code` `插件` `测试生成` `代码审查`
# MERN Ninja
> 面向 [Claude Code](https://claude.ai/claude-code) 的 MERN 全栈精通工具
一个为 Claude Code 提供 MongoDB、Express、React 和 Node.js 开发专项技能的插件。
## 安装
```bash
# 第一步:添加市场(仅需一次)
/plugin marketplace add 9tykeshav/mern-ninja-marketplace
# 第二步:安装插件
/plugin install mern-ninja@mern-ninja-marketplace
```
## 技能
### `mern-ninja:backend-test-writer`
以智能默认值、零配置方式生成全面的后端测试。
**直接说:**
```
为我的用户路由生成测试
为认证服务编写测试
为 User 模型创建测试
```
**功能说明:**
| 文件类型 | 测试类型 | 方式 |
|----------|----------|------|
| 路由/控制器 | 集成测试 | Supertest + mongodb-memory-server |
| 服务 | 单元测试 | Mock 依赖 |
| 模型 | 单元测试 | 校验、方法、toJSON |
| 中间件 | 单元测试 | Mock req/res/next |
| 工具函数 | 单元测试 | 纯函数测试 |
**特性:**
- 自动检测测试框架Jest/Vitest/Mocha
- 在生成新测试前分析现有测试的覆盖缺口
- 为每个测试用例标注优先级P0/P1/P2
- 针对特定领域的边界情况(日期 → 夏令时/时区,金额 → 精度)
- 内置 Setup/Teardown 样板代码
---
### `mern-ninja:code-reviewer`
从安全、性能和最佳实践角度审查 MERN 全栈代码。
**直接说:**
```
审查我的认证代码
检查这个 Express API 的安全问题
审计这个 MongoDB Schema
```
**审查优先级:**
| 优先级 | 关注点 |
|--------|--------|
| 1. 安全 | 注入攻击、XSS、认证缺陷、密钥泄露、CORS |
| 2. 性能 | N+1 查询、重复渲染、阻塞操作 |
| 3. 最佳实践 | 错误处理、异步模式、资源清理 |
| 4. 架构 | API 设计、状态同步、类型安全 |
**示例输出:**
```markdown
# MERN 代码审查
## 摘要
- 已审查文件5
- 问题2 个严重3 个重要5 条建议
## 严重(必须修复)
### [C1] 安全:登录接口存在 NoSQL 注入
**文件:** `api/auth/login.js:24`
**原因:** 用户输入直接传入查询
**修复:** 使用显式字段匹配
## 做得好的地方
- JWT 刷新流程正确
- 错误响应格式一致
```
---
### `mern-ninja:mongodb-query-patterns`
以数据流优先的方式编写可扩展的 MongoDB/Mongoose 查询。
**以下情况会自动触发:**
```
编写新的 Mongoose 查询
在服务之间传递数据
构建读写 MongoDB 的接口
在可传递文档的地方传递了 ID
```
**核心理念:** 最好的查询是根本不发出的查询。在调用栈中传递文档——不要重复获取调用方已经拥有的数据。
**涵盖的模式:**
| 模式 | 防止的问题 |
|------|-----------|
| 在服务间传递数据 | 同一文档在服务边界被重复查询 3-4 次 |
| 使用 `$in` + Map 批量处理 | 每条记录触发一次查询的 N+1 循环 |
| `.select()` + `.lean()` | 读路径上携带 Mongoose 开销的全文档查询 |
| 避免对列表使用 `.populate()` | 隐藏在整洁 API 背后的隐式 N+1 查询 |
| 直接使用 `updateOne` | 简单字段更新的"查询-修改-保存"往返 |
| 使用 `bulkWrite` | 顺序执行的更新循环 |
| 提升公共查询 | if/else 分支中的重复查询 |
| 为过滤字段建立索引 | 全集合扫描COLLSCAN |
**包含:** 提交前检查清单、常见错误对照表,以及"每条查询都必须自证其存在"的决策框架。
---
## 参考指南
插件内置约 1500 行精心整理的最佳实践:
| 指南 | 内容 |
|------|------|
| `security.md` | OWASP Top 10、MERN 特有漏洞 |
| `react.md` | Hooks、重复渲染、安全、测试 |
| `nodejs.md` | 异步模式、事件循环、内存管理 |
| `express.md` | 中间件、认证、错误处理 |
| `mongodb.md` | Schema 设计、索引、查询 |
| `fullstack.md` | API 设计、认证流程、状态同步 |
| `test-patterns.md` | 按文件类型分类的完整测试示例 |
| `test-setup.md` | Jest 配置、测试夹具、Mock |
## 路线图
- [ ] `mern-ninja:scaffolder` 生成 MERN 脚手架
- [ ] `mern-ninja:migrator` 数据库迁移辅助工具
- [ ] `mern-ninja:frontend-test-writer` React 组件测试
## 许可证
MIT