CRUD 操作

Frontend SELF TW
等級 44 , 課堂 1
開放

6.1 CRUD 簡介

CRUD 是一個首字母縮寫詞,表示可以對數據進行的四個基本操作: 創建 (Create),讀取 (Read),更新 (Update) 和 刪除 (Delete)。 這些操作是數據庫操作的基本操作,也是大多數 Web 應用程式的基礎。

什麼是 CRUD?

  • Create (創建): 創建操作用於向數據庫添加新的記錄。這允許將新數據輸入系統。
  • Read (讀取): 讀取操作用於從數據庫中檢索數據。這允許用戶查詢和查看現有信息。
  • Update (更新): 更新操作用於修改數據庫中的現有記錄。這允許編輯和更正數據。
  • Delete (刪除): 刪除操作用於從數據庫中刪除記錄。這允許刪除不需要或過時的數據。

HTTP 方法來進行 CRUD 操作

在 Web 開發的語境中,CRUD 操作通常通過對 API 的 HTTP 請求來執行。不同的 HTTP 方法對應於不同的 CRUD 操作:

  • POST: 用於創建新資源。
  • GET: 用於讀取(獲取)資源。
  • PUTPATCH: 用於更新現有資源。 PUT 通常用於完全替換資源, 而 PATCH 用於部分更新。
  • DELETE: 用於刪除資源。

為什麼需要 CRUD 操作?

CRUD 操作是 Web 應用程式中數據操作的基礎。它們允許開發人員實現基本的功能特性,如創建用戶賬戶、編輯個人檔案、查看數據和刪除記錄。這些操作還提供了客戶端和服務器之間的交互,允許數據和命令的傳遞。

現代工具來進行 CRUD 操作

現代 Web 應用程序通常使用各種工具和庫來通過 API 執行 CRUD 操作:

  • Fetch API: 瀏覽器中內建的基於 Promise 的 HTTP 請求方法。
  • Axios: 一個流行的 HTTP 請求庫,提供了一個便捷且擴展的 API。

這些工具幫助開發人員輕鬆高效地執行 CRUD 操作,提供靈活性並簡化與不同服務器 API 的整合。

6.2 使用 Fetch

來看一下如何使用 Fetch 來執行 CRUD 操作。

創建 (Create):

JavaScript
    
      const createData = async (data) => {
        const response = await fetch('https://jsonplaceholder.typicode.com/posts', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(data)
        });
        const result = await response.json();
        console.log('Created:', result);
      };

      createData({ title: 'foo', body: 'bar', userId: 1 });
    
  

讀取 (Read):

JavaScript
    
      const readData = async (id) => {
        const response = await fetch(`https://jsonplaceholder.typicode.com/posts/${id}`);
        const result = await response.json();
        console.log('Read:', result);
      };

      readData(1);
    
  

更新 (Update):

JavaScript
    
      const updateData = async (id, data) => {
        const response = await fetch(`https://jsonplaceholder.typicode.com/posts/${id}`, {
          method: 'PUT',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(data)
        });
        const result = await response.json();
        console.log('Updated:', result);
      };

      updateData(1, { title: 'foo', body: 'bar', userId: 1 });
    
  

刪除 (Delete):

JavaScript
    
      const deleteData = async (id) => {
        const response = await fetch(`https://jsonplaceholder.typicode.com/posts/${id}`, {
          method: 'DELETE'
        });
        if (response.ok) {
          console.log('Deleted:', id);
        } else {
          console.error('Failed to delete:', id);
        }
      };

      deleteData(1);
    
  

6.3 使用 Axios

來看看如何使用 Axios 來執行 CRUD 操作。

創建 (Create):

JavaScript
    
      const axios = require('axios');

      const createData = async (data) => {
        try {
          const response = await axios.post('https://jsonplaceholder.typicode.com/posts', data);
          console.log('Created:', response.data);
        } catch (error) {
          console.error('Error creating data:', error);
        }
      };

      createData({ title: 'foo', body: 'bar', userId: 1 });
    
  

讀取 (Read):

JavaScript
    
      const readData = async (id) => {
        try {
          const response = await axios.get(`https://jsonplaceholder.typicode.com/posts/${id}`);
          console.log('Read:', response.data);
        } catch (error) {
          console.error('Error reading data:', error);
        }
      };

      readData(1);
    
  

更新 (Update):

JavaScript
    
      const updateData = async (id, data) => {
        try {
          const response = await axios.put(`https://jsonplaceholder.typicode.com/posts/${id}`, data);
          console.log('Updated:', response.data);
        } catch (error) {
          console.error('Error updating data:', error);
        }
      };

      updateData(1, { title: 'foo', body: 'bar', userId: 1 });
    
  

刪除 (Delete):

JavaScript
    
      const deleteData = async (id) => {
        try {
          const response = await axios.delete(`https://jsonplaceholder.typicode.com/posts/${id}`);
          if (response.status === 200) {
            console.log('Deleted:', id);
          }
        } catch (error) {
          console.error('Error deleting data:', error);
        }
      };

      deleteData(1);
    
  

6.4 使用 CRUD 的小技巧

通過 API 使用 CRUD 操作的小技巧:

  1. 錯誤處理: 在執行 HTTP 請求時務必處理可能的錯誤。使用 try...catch 塊或 catch 方法來處理錯誤。
  2. 數據驗證: 在向服務器發送數據之前,確保它們符合預期格式。
  3. 身份驗證和授權: 在處理受保護的資源時,確保正確處理身份驗證和授權,例如將訪問令牌添加到請求標頭。
  4. 分頁和篩選: 在接收大量數據時,使用查詢參數進行分頁和篩選數據。
  5. 緩存: 為了提高性能,可以緩存經常請求的數據。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION