Randomize Cards

Agar setiap pengguna yang mengakses halaman Cards diberikan soal yang random, maka kita bisa menambahkan fungsi random

router.get('/', (req, res) => {
    const numberOfCards = cards.length
    const flashCardId = Math.floor(Math.random() * numberOfCards)
    res.redirect(`/cards/%{flashCardId}/?side=question`)
})

Kemudian coba kode tersebut di browser dan pastikan berfungsi

Selanjutnya, jika user datang langsung dengan memasukkan id soal, seharusnya muncul error, karena tidak ada soal yang keluar. Soal membutuhkan query agar dapat dimunculkan. Oleh karena itu, kita bisa menambahkan

// cards.js
//    di dalam GET /:id
//    dibawah id dan side

if (!side) {
    res.redirect(`/cards/${id}?side=soal`)
}

Lalu pastikan kode tersebut berfungsi

Terakhir, buat link untuk mendapatkan soal selanjutnya

// card.pug
...
a(href='/cards') Soal Lain

Masih belum terakhir ternyata. Jika pengguna memasukkan ?side=hint maka akan terjadi kesalahan, bagaimana kira kira solusinya?

Kemudian, kita akan mengubah struktur tampilan menjadi

  1. Halaman index menambahkan link untuk memulai kuis
  2. Memindahkan sapaan dan tombol goodbye ke layout.pug
  3. Namun ketika mengecek halaman cars, nama sapaan tidak muncul. Solusinya? Silakan ambil nama dari cookies dan kirimkan ke template
  4. Membuka halaman cards, dan nama masih kosong. Mari kita login terlebih dahulu
  5. Masalah selanjutnya, jika kita menekan goodbye, di halaman /hello masih memunculkan sapaan dan button goodbye
  6. Untuk mensolusikannya, di layout.pug, buat sebuah kondisional jika nama ada, maka memunculkan kedua hal tersebut

results matching ""

    No results matching ""