我正在建立一個小型全端系統(typescript、express、NodeJs),並且在用戶可以根據所選影院請求電影的其中一個路線中,具體服務如下:
async function getMoviesByTheatreId(theatreId : number) : Promise<MovieModel[]> { // SQL: const sql = 'SELECT * FROM movies where theatreId = ?;' // Call dal: const movies = await dal.execute(sql ,[theatreId]); // Return: return movies; }
澄清 MYSQL 資料庫中有兩個表格—劇院和電影。它們共用一個引用 Theaters 表中的「theatreId」列的外鍵。外鍵是電影表中的外鍵。
現在,用戶有可能會發送一些不存在的 theatreId,在這種情況下,我想拋出新的 ResourceNotFoundError。然而,也有可能 theatreId 確實存在,但只是沒有任何電影與該劇院匹配。在這種情況下,我不想拋出該錯誤。 我還希望它在效能方面表現良好,使用多個查詢檢查資料庫會減慢整個過程。
首先,在查詢 Movies 表之前,檢查 Theaters 表中是否存在具有所提供的
theatreId
的劇院。然後就可以查詢電影了。這裡是範例程式碼: