Express Tutorial Part 5: Displaying library data

 

现在,我们准备添加显示LocalLibrary网站书籍和其他数据的页面. 这些页面将包含一个主页,该页面显示我们对每种模型类型拥有多少条记录,以及所有模型的列表和详细信息页面. 在此过程中,我们将获得从数据库获取记录和使用模板的实践经验.

Prerequisites: 完成以前的教程主题(包括Express教程第4部分:路由和控制器 ).
Objective: 了解如何使用异步模块和Pug模板语言,以及如何从控制器函数中的URL获取数据.

Overview

在之前的教程文章中,我们定义了可用于与数据库交互的Mongoose模型 ,并创建了一些初始库记录. 然后,我们创建了LocalLibrary网站所需的所有路由 ,但具有"虚拟控制器"功能(这些是骨架控制器功能,当访问页面时,它们仅返回"未实现"消息).

下一步是为显示我们的库信息的页面提供适当的实现(我们将在以后的文章中查看实现具有表单的页面,这些表单用于创建,更新或删除信息). 这包括更新控制器功能以使用我们的模型获取记录,并定义模板以向用户显示此信息.

我们将首先提供概述/入门主题,这些主题说明如何在控制器功能中管理异步操作以及如何使用Pug编写模板. 然后,我们将为每个主"只读"页面提供实现,并简要说明它们使用的任何特殊功能或新功能.

在本文的最后,您应该对路由,异步函数,视图和模型在实际中的工作方式有很好的端到端理解.

Displaying library data tutorial subarticles

以下子文章介绍了添加我们显示所需网站页面所需的不同功能的过程. 在继续进行下一个之前,您需要依次阅读和阅读每个内容.

  1. Asynchronous flow control using async
  2. Template primer
  3. The LocalLibrary base template
  4. Home page
  5. Book list page
  6. BookInstance list page
  7. Date formatting using moment
  8. Author list page and Genre list page challenge
  9. Genre detail page
  10. Book detail page
  11. Author detail page
  12. BookInstance detail page and challenge

Summary

现在,我们为网站创建了所有"只读"页面:一个主页,显示每个模型的实例计数,以及书籍,书籍实例,作者和类型的列表和详细页面. 在此过程中,我们获得了有关控制器,使用异步操作管理流控制,使用Pug创建视图,使用模型查询站点数据库,将信息传递到视图以及创建和扩展模板的大量基础知识. 挑战还将使读者对使用瞬间的日期处理有所了解.

在我们的下一篇文章中,我们将基于我们的知识,创建HTML表单和表单处理代码以开始修改站点存储的数据.

See also

In this module