Rumah > Soal Jawab > teks badan
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粉2441552772023-09-13 00:30:20
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 async
和 await
untuk memisahkan panggilan:
export default function handler(req, res) { if (req === "GET") { const result = await getRequest(); if (result.isEmpty()) { postRequest(); } } }