Membuang ResourceNotFoundError(id) baharu untuk id n yang tidak wujud
P粉060528326
P粉060528326 2023-09-13 16:13:55
0
1
669

Saya sedang membina sistem tindanan penuh kecil (skrip taip, ekspres, NodeJs) dan dalam salah satu laluan pengguna boleh meminta filem berdasarkan teater yang dipilih, perkhidmatan khusus adalah seperti berikut:

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;
}

Penjelasan Terdapat dua jadual dalam pangkalan data MYSQL - Teater dan Filem. Mereka berkongsi kunci asing yang merujuk lajur "theatreId" dalam jadual Teater. Kunci asing ialah kunci asing dalam jadual filem.

Kini, terdapat kemungkinan pengguna menghantar beberapa theatreId yang tidak wujud, dalam hal ini saya ingin membuang ResourceNotFoundError baharu. Walau bagaimanapun, kemungkinan theatreId juga wujud, tetapi tiada filem yang sepadan dengan teater tersebut. Dalam kes ini saya tidak mahu membuang kesilapan itu. Saya juga mahu ia menjadi baik dari segi prestasi, menggunakan berbilang pertanyaan untuk menyemak pangkalan data akan melambatkan keseluruhan proses.

P粉060528326
P粉060528326

membalas semua(1)
P粉071743732

Mula-mula, sebelum menanyakan jadual Filem, semak sama ada teater dengan theatreId yang disediakan wujud dalam jadual Teater. Kemudian anda boleh menanyakan filem itu.

Berikut ialah kod contoh:

async function getMoviesByTheatreId(theatreId : number) : Promise<MovieModel[]> {

    const theatreSql = 'SELECT * FROM theatres WHERE theatreId = ?';
    const theatre = await dal.execute(theatreSql, [theatreId]);

    if (theatre.length === 0) {
        // throw new ResourceNotFoundError('Theatre not found');
    }

    // SQL to retrieve movies with provided theatreId:
    const moviesSql = 'SELECT * FROM movies WHERE theatreId = ?;'

    // Call dal:
    const movies = await dal.execute(moviesSql ,[theatreId]);

    // Return:
    return movies;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan