Adakah amalan yang baik untuk melakukan POST dalam permintaan GET?
P粉434996845
P粉434996845 2023-09-12 09:11:31
0
1
565

Seperti tajuk, saya ingin membuat permintaan POST pada masa yang sama dengan permintaan GET. Adakah ini amalan yang baik? Atau tidak-tidak yang besar?

Ini kerana fungsi apl saya berfungsi seperti berikut: apabila halaman dimuatkan, ia perlu mendapatkan data pengguna. Jika data pengguna tiada dalam pangkalan data, ia perlu ditambah ke pangkalan data. tidak berdaftar. Kami menjejaki semua pengguna di halaman. (bilangan kali mereka melawat tapak dan ID mereka)

EDIT: Kami tidak menjejaki maklumat log masuk pengguna. Atau mendaftar mereka. Kami akan merekodkan dalam pangkalan data kami bilangan kali mereka melawat tapak web.

Saya cuba menyediakannya menggunakan GET dan kemudian onSuccess menjalankan permintaan POST, tetapi ia kelihatan seperti berlebihan.

export default function handler(req, res) {
  if (req.method === 'GET') {
    // check db if user is there (db.get())
    // if not run the PUT request. (db.save())
  } 
}

P粉434996845
P粉434996845

membalas semua(1)
P粉244155277

Mungkin ada cara yang lebih baik. Contohnya, jika anda menggunakan DynamoDB, anda boleh menggunakan Projek Kemas Kini. Ini membolehkan anda mengemas kini projek jika ia wujud, atau menerbitkan projek baharu jika ia tidak wujud. Selain itu, dengan menggunakan parameter ReturnValues, operasi akan mengembalikan sebarang sifat yang anda inginkan. Anda boleh mendapatkan semua yang anda inginkan dengan salah satu panggilan ini.

Tetapi jika tidak, ini kelihatan baik bagi saya. Jika anda ingin mengelakkan panggilan balik bersarang, anda boleh menggunakan sintaks asyncawait untuk memisahkan panggilan:

export default function handler(req, res) {
  if (req === "GET") {
    const result = await getRequest();
    if (result.isEmpty()) {
      postRequest();
    }
  }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan