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 表單和表單處理程式碼,開始修改網站儲存的資料。

另見