Ich baue ein kleines Full-Stack-System (Typescript, Express, NodeJs) auf und auf einer der Routen kann der Benutzer Filme basierend auf dem ausgewählten Kino anfordern. Die spezifischen Dienste lauten wie folgt:
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; }
Klarstellung In der MYSQL-Datenbank gibt es zwei Tabellen: Theater und Filme. Sie teilen sich einen Fremdschlüssel, der auf die Spalte „theatreId“ in der Tabelle „Theater“ verweist. Der Fremdschlüssel ist ein Fremdschlüssel in der Filmtabelle.
Jetzt besteht die Möglichkeit, dass der Benutzer eine Theater-ID sendet, die nicht existiert. In diesem Fall möchte ich einen neuen ResourceNotFoundError auslösen. Es ist jedoch auch möglich, dass die Theater-ID zwar existiert, es aber einfach keine Filme gibt, die zu diesem Theater passen. In diesem Fall möchte ich diesen Fehler nicht auslösen. Ich möchte auch, dass die Leistung gut ist. Die Verwendung mehrerer Abfragen zur Überprüfung der Datenbank verlangsamt den gesamten Prozess.
首先,在查询 Movies 表之前,检查 Theaters 表中是否存在具有所提供的
theatreId
的剧院。然后就可以查询电影了。这里是示例代码: