149 lines
4.3 KiB
Markdown
149 lines
4.3 KiB
Markdown
# 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 |