# 创建问题

副驾驶聊天 可以帮助你快速创建问题，而不需要你手动填写每一字段。

手动创建问题可能非常耗时。 利用 副驾驶聊天，可以采用自然语言创建问题，并根据提示自动填写标题、正文、标签及其他元数据。

## 示例方案

你正在开发一个 API 服务，需要在`createUser`接口上添加服务器端验证。 与其手动起草问题，不如使用 副驾驶聊天 生成详细的问题说明，其中包括验证中间件的示例实现。

以下代码片段展示了在添加验证之前，`createUser` 路由的当前实现：

```javascript
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});
```

## 示例提示

`In octo-org/octo-repo, create an issue to add server-side validation for the createUser API endpoint. Include an example of how to validate the request body using an existing middleware pattern. Label it with "backend" and "enhancement".`

## 示例响应

> [!NOTE] 以下响应是示例。 副驾驶聊天 的回答是不确定的，因此你可能会得到与这里所显示的不同的回答。

提交提示后，副驾驶聊天 会根据描述生成问题草稿，并包括代码片段。 可以在创建问题之前查看和编辑草稿。

```markdown
## Problem
The `createUser` API endpoint currently lacks robust server-side validation for incoming requests. To ensure data integrity and security, we should validate the request body before proceeding with user creation.

**Current API endpoint:**
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});

## Proposal
- Add server-side validation for the request body using the existing middleware pattern.
- Ensure required fields (`username`, `email`) are present and valid.
- Return a 400 Bad Request response if validation fails.

**Example (middleware pattern):**
function validateCreateUser(req, res, next) {
  const { username, email } = req.body;
  if (!username || !email) {
    return res.status(400).json({ error: 'Username and email are required.' });
  }
  // Additional validation logic here
  next();
}

app.post('/users', validateCreateUser, (req, res) => {
  // ...
});

## Acceptance Criteria
- Server-side validation middleware is added to the `createUser` endpoint.
- Request body is properly validated.
- Appropriate error responses are returned for invalid requests.
```