Express 教程第五部分:显示图书馆数据

我们现在准备添加用于显示 LocalLibrary 网站书籍和其他数据的页面。这些页面将包括一个主页,显示我们每种模型类型的记录数量,以及所有模型列表和详情页面。在此过程中,我们将获得从数据库获取记录以及使用模板的实践经验。

预备知识 完成之前的教程主题(包括 Express 教程第四部分:路由和控制器)。
目标 理解如何使用 async/await 执行异步数据库操作,如何使用 Pug 模板语言,以及如何在控制器函数中从 URL 获取数据。

概述

在我们之前的教程文章中,我们定义了可用于与数据库交互的 Mongoose 模型,并创建了一些初始的图书馆记录。然后我们 创建了 LocalLibrary 网站所需的所有路由,但使用了“虚拟控制器”函数(这些是骨架控制器函数,在访问页面时只会返回“未实现”的消息)。

下一步是为显示我们图书馆信息的页面提供正确的实现(稍后文章中我们将讨论实现包含创建、更新或删除信息的表单的页面)。这包括更新控制器函数以使用我们的模型获取记录,并定义模板以将此信息显示给用户。

我们将首先提供概述/入门主题,解释如何在控制器函数中管理异步操作以及如何使用 Pug 编写模板。然后,我们将为我们主要的“只读”页面提供实现,并简要解释它们使用的任何特殊或新功能。

阅读完本文,您应该对路由、异步函数、视图和模型在实践中如何工作有了一个全面的理解。

显示图书馆数据教程子文章

接下来的子文章将介绍添加显示所需网站页面所需功能的整个过程。您需要依次阅读和完成其中的每一篇,然后再继续下一篇。

  1. 模板入门
  2. LocalLibrary 基础模板
  3. 主页
  4. 图书列表页面
  5. BookInstance 列表页
  6. 使用 luxon 进行日期格式化
  7. 作者列表页和流派列表页挑战
  8. 流派详情页
  9. 图书详情页面
  10. 作者详情页
  11. BookInstance 详情页和挑战

总结

现在我们已经创建了网站的所有“只读”页面:一个显示我们每种模型实例计数的首页,以及书籍、book instances、作者和流派的列表和详情页面。在此过程中,我们获得了关于控制器、使用异步操作时管理流程控制、使用 Pug 创建视图、使用模型查询网站数据库、将信息传递给视图以及创建和扩展模板等方面的许多基础知识。这些挑战也将让读者对使用 Luxon 进行日期处理有所了解。

在下一篇文章中,我们将在此基础上,构建 HTML 表单和表单处理代码,开始修改网站存储的数据。

另见