Skip to content

Homework:实现查询所有用户预订记录的 API

背景

在一次与红叶的对话中,青叶决定为温泉旅馆的预订系统添加一个新功能——让客人可以查询所有的预订记录。青叶认为,通过改进 API,温泉旅馆的工作人员可以更加方便地查看所有用户的预订信息。因此,她决定动手实现一个 API,返回数据库中所有用户的预订记录。你将帮助青叶完成这个功能。

开发要求

  1. 创建一个 GET 路由 /api/users​,返回数据库中所有用户的数据。

    • 数据应以 JSON 格式 返回,格式如下:

      json
      [
        {
          "name": "凉风青叶",
          "reservationDate": "2024-12-25"
        },
        {
          "name": "饭岛结音",
          "reservationDate": "2024-12-26"
        }
      ]
  2. 获取所有用户数据

    • 使用 Mongoose 的 .find()​ 方法从 MongoDB 中获取所有用户的数据。
  3. 数据库连接与模型

    • 数据库连接与模型设计可以参考本周的 Doc 和 Lab 内容,特别是如何连接到 MongoDB,如何定义用户数据模型。
  4. 测试方法

    • 使用 Postman 或 curl 发送 GET 请求到 /api/users​,查看返回的用户数据格式是否正确。

提示

  • 在获取所有用户数据时,可以使用 Mongoose 的 .find()​ 方法,这个方法返回数据库中所有符合条件的文档。如果没有指定条件,则会返回所有用户的数据。
    例如:

    javascript
    User.find({}, (err, users) => {
      if (err) {
        return res.status(500).send('获取用户数据失败');
      }
      res.json(users);  // 返回所有用户的数据
    });
  • 你需要确保返回的数据格式符合要求,每个用户包含 name​ 和 reservationDate​ 字段。

  • 如果数据库中没有用户数据,返回一个空数组 []​。

思考题

  1. 如果用户信息有数十万条,会发生什么问题,该怎么解决?
  2. 如果系统需要存储更多信息(如电话号码、邮箱),如何修改模型设计?