mcpField
E
express-rest-api

express-rest-api

github.com/pluginagentmarketplace开发2901 次安装42 周前更新
代码仓库

关于 express-rest-api

面向 Node.js 开发者的 Express.js REST API 学习与构建指南,适用于 Web 或移动应用后端、微服务和 API 优先项目。内容从路由、中间件和错误处理延伸到安全、测试与部署实践。

主要功能

  1. 01Express 应用与路由结构示例
  2. 02中间件和错误处理模式
  3. 03RESTful 端点设计指导
  4. 04安全、验证与限流建议
  5. 05项目结构与生产检查清单

适用场景

  1. 01构建 Web 或移动应用后端
  2. 02开发微服务 API
  3. 03为 API 添加认证和输入验证

安装

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

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-nodejs --skill express-rest-api

安装后在 Claude Code 中输入/express-rest-api确认已加载。

包含的文件

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

assets/
config.yaml
references/
GUIDE.md
scripts/
helper.py

详细介绍

Express REST API 技能

掌握使用 Express.js 构建健壮、可扩展的 REST API。Express.js 是 Node.js Web 框架中事实上的标准。

快速入门

分 5 步构建基础的 Express API:

  1. 安装 Express - npm install express
  2. 创建路由 - 定义 GET、POST、PUT、DELETE 端点
  3. 添加中间件 - JSON 解析、CORS、安全标头
  4. 处理错误 - 集中式错误处理
  5. 测试与部署 - 使用 Postman/Insomnia,部署到云端

核心概念

1. Express 应用结构
const express = require('express');
const app = express();

// Middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Routes
app.use('/api/users', userRoutes);
app.use('/api/products', productRoutes);

// Error handling
app.use(errorHandler);

app.listen(3000, () => console.log('Server running'));
2. RESTful 路由设计
// GET    /api/users       - Get all users
// GET    /api/users/:id   - Get user by ID
// POST   /api/users       - Create user
// PUT    /api/users/:id   - Update user
// DELETE /api/users/:id   - Delete user

const router = express.Router();

router.get('/', getAllUsers);
router.get('/:id', getUserById);
router.post('/', createUser);
router.put('/:id', updateUser);
router.delete('/:id', deleteUser);

module.exports = router;
3. 中间件模式
// Authentication middleware
const authenticate = (req, res, next) => {
  const token = req.headers.authorization;
  if (!token) return res.status(401).json({ error: 'Unauthorized' });
  // Verify token...
  next();
};

// Validation middleware
const validate = (schema) => (req, res, next) => {
  const { error } = schema.validate(req.body);
  if (error) return res.status(400).json({ error: error.message });
  next();
};

// Usage
router.post('/users', authenticate, validate(userSchema), createUser);
4. 错误处理
// Custom error class
class APIError extends Error {
  constructor(message, statusCode) {
    super(message);
    this.statusCode = statusCode;
  }
}

// Global error handler
app.use((err, req, res, next) => {
  const statusCode = err.statusCode || 500;
  res.status(statusCode).json({
    success: false,
    error: err.message,
    ...(process.env.NODE_ENV === 'development' && { stack: err.stack })
  });
});

学习路径

初级(2-3 周)
  • ✅ 安装 Express 并创建基础路由
  • ✅ 理解中间件概念
  • ✅ 实现 CRUD 操作
  • ✅ 使用 Postman 测试
中级(4-6 周)
  • ✅ 实现身份验证(JWT)
  • ✅ 添加输入验证
  • ✅ 组织代码(MVC 模式)
  • ✅ 连接数据库
高级(8-10 周)
  • ✅ API 版本控制(/api/v1/、/api/v2/)
  • ✅ 速率限制与安全
  • ✅ 分页与筛选
  • ✅ API 文档(Swagger)
  • ✅ 性能优化

必备软件包

{
  "dependencies": {
    "express": "^4.18.0",
    "helmet": "^7.0.0",          // Security headers
    "cors": "^2.8.5",            // Cross-origin requests
    "morgan": "^1.10.0",         // HTTP logger
    "express-validator": "^7.0.0", // Input validation
    "express-rate-limit": "^6.0.0" // Rate limiting
  }
}

常见模式

响应格式
// Success
{ success: true, data: {...} }

// Error
{ success: false, error: "Message" }

// Pagination
{
  success: true,
  data: [...],
  pagination: { page: 1, limit: 10, total: 100 }
}
HTTP 状态码
  • 200 OK - GET/PUT 请求成功
  • 201 Created - POST 请求成功
  • 204 No Content - DELETE 请求成功
  • 400 Bad Request - 验证错误
  • 401 Unauthorized - 需要身份验证
  • 403 Forbidden - 无权限
  • 404 Not Found - 未找到资源
  • 500 Internal Error - 服务器错误

项目结构

src/
├── controllers/    # Route handlers
├── routes/        # Route definitions
├── middlewares/   # Custom middleware
├── models/        # Data models
├── services/      # Business logic
├── utils/         # Helpers
└── app.js         # Express setup

生产环境检查清单

  • ✅ 环境变量(.env)
  • ✅ 安全标头(Helmet)
  • ✅ CORS 配置
  • ✅ 速率限制
  • ✅ 输入验证
  • ✅ 错误处理
  • ✅ 日志记录(Morgan/Winston)
  • ✅ 测试(Jest/Supertest)
  • ✅ API 文档

实际示例

完整的用户 API:

const express = require('express');
const router = express.Router();
const { body } = require('express-validator');

// GET /api/users
router.get('/', async (req, res, next) => {
  try {
    const { page = 1, limit = 10 } = req.query;
    const users = await User.find()
      .limit(limit)
      .skip((page - 1) * limit);

    res.json({ success: true, data: users });
  } catch (error) {
    next(error);
  }
});

// POST /api/users
router.post('/',
  body('email').isEmail(),
  body('password').isLength({ min: 8 }),
  async (req, res, next) => {
    try {
      const user = await User.create(req.body);
      res.status(201).json({ success: true, data: user });
    } catch (error) {
      next(error);
    }
  }
);

module.exports = router;

适用场景

在以下情况下使用 Express REST API:

  • 为 Web/移动应用构建后端
  • 创建微服务
  • 开发 API 优先的应用
  • 需要灵活、轻量的框架
  • 希望拥有庞大的生态系统和社区

相关技能

  • 异步编程(处理异步操作)
  • 数据库集成(连接 MongoDB/PostgreSQL)
  • JWT 身份验证(保护 API)
  • Jest 测试(测试端点)
  • Docker 部署(将 API 容器化)

资源

评论

支持 Markdown