
使用NestJS和Prisma構建REST API:身份驗證
環境準備:開發者強調,要跟上本課程的節奏,需確保本地開發環境已安裝 Node.js、Java 11 以及 MySQL 數據庫。對于開發工具,推薦使用 IntelliJ IDEA 構建后端,VS Code 搭建前端,同時提及 Postman 用于 API 測試,Material-UI 用于前端設計。這一系列準備工作的說明,讓開發者能夠迅速搭建起適配項目需求的開發環境。
后端項目搭建:走進 Spring Boot 后端項目的創建過程。開發者引導觀眾通過 Spring Boot Initializr 快速生成項目骨架,精準選擇 Maven 項目、Java 語言,敲定項目元數據如組名、Artifact ID 后,添加關鍵依賴,包括 Spring Web、Spring Data JPA、MySQL Driver,為后端注入強大功能。項目生成后,解壓并導入 IntelliJ IDEA,耐心指導如何切換 JDK 版本至 11,確保項目配置精準無誤。緊接著,腳手架式的項目包結構搭建有序展開,model、repository、controller、service 等包逐一登場,為后續代碼撰寫筑牢根基。
模型構建:聚焦于模型類的雕琢,Student 類披上@Entity 注解的外衣,屬性私有化后,@Id 與@GeneratedValue 搭配,賦予 id 字段獨一無二且自增的特質。借助 IntelliJ IDEA 的代碼生成功能,快速生成構造函數、getter 和 setter 方法,提升開發效率,讓模型類的構建既標準又敏捷。
數據庫連接配置:步入數據庫連接的核心地帶,開發者在 application.properties 文件中精心配置各項參數,從數據庫 URL、用戶名、密碼,到指定數據庫驅動類名,每一步都嚴謹細致。經此配置,Spring Boot 應用與 MySQL 數據庫成功“握手”,為數據的持久化鋪就通途。運行應用查看配置是否正確后,見證 Spring Boot 基于配置自動創建學生表,表結構嚴絲合縫地匹配模型類的屬性,自動化的力量在此刻盡顯鋒芒。
數據存儲實現:深入后端邏輯的編寫,開發者在 Service 層與 Controller 層精心編碼,定義保存學生信息的方法。借助 Spring Data JPA 的強大能力,寥寥數行代碼便完成了數據存儲的業務邏輯。通過 Postman 發起 POST 請求,將學生數據傳遞至后端,數據庫隨之更新,數據存儲功能大功告成,前后端的數據流轉初露端倪。
數據讀取功能:轉向數據讀取的實現,開發者在 Service 層與 Controller 層續寫代碼,精心打造獲取所有學生信息的接口。在 Controller 層運用@GetMapping 注解,定義數據獲取的訪問路徑,借助 Postman 發起 GET 請求,成功從數據庫中檢索出所有學生數據并呈現于前端,數據的讀取流程一氣呵成。
前端項目搭建:步入前端領域,開發者在本地環境搭建 React 應用。通過 npx create-react-app 命令,快速創建 React 項目,隨后引入 Material-UI 與 Material Icons,為前端界面增添豐富的 UI 組件與圖標資源。項目創建完成后,在 VS Code 中啟動開發服務器,原始的 React 歡迎頁面映入眼簾,前端開發的舞臺搭建完畢。
頂部導航欄添加:開發者引入 Material-UI 的AppBar 組件,為應用構建直觀簡潔的頂部導航欄。通過定制導航欄的標題與樣式,使其完美契合項目主題,為用戶體驗注入第一抹友好色彩。
表單構建:在前端精心構建受控表單,開發者運用 Material-UI 的 TextField 組件搭建學生信息輸入表單,涵蓋姓名與地址兩個字段。巧妙運用 React 的 useState 鉤子管理表單狀態,確保用戶輸入的數據實時反映在組件狀態中,為后續數據提交做好準備。同時,賦予表單容器獨特的樣式,使其在頁面中脫穎而出,提升視覺吸引力。
數據提交:聚焦于數據從前端到后端的流轉,開發者在表單提交按鈕的點擊事件中嵌入 fetch API 調用,精心構造 POST 請求,將表單數據以 JSON 格式發送至后端接口。點擊提交按鈕后,前端數據飛速抵達后端數據庫,成功存儲,數據的前后端之旅完美閉環。
數據展示:實現數據從數據庫到前端的回流,開發者運用 React 的 useEffect 鉤子,在組件加載時自動觸發數據獲取邏輯。再次借助 fetch API 發起 GET 請求,從后端拉取學生數據并更新組件狀態,前端界面瞬間呈現完整的數據列表,數據的前端展示功能圓滿實現。
項目收尾:隨著前端頁面成功展示從數據庫獲取的學生信息,一個完整的全棧應用宣告誕生。開發者構建了一個數據輸入、存儲、讀取、展示的閉環流程,后端的 Spring Boot 與前端的 React 協同工作,相得益彰,共同撐起應用的運行。這一刻,代碼化作有形的產品,宣告著開發者的技藝與項目的成功。
原文引自YouTube視頻:https://www.youtube.com/watch?v=O_XL9oQ1_To