Heim > Fragen und Antworten > Hauptteil
Wie der Titel schon sagt, möchte ich gleichzeitig mit einer GET-Anfrage eine POST-Anfrage stellen. Ist das eine gute Praxis? Oder ein großes Nein-Nein?
Das liegt daran, dass meine App-Funktionalität wie folgt funktioniert: Wenn die Seite geladen wird, muss sie die Benutzerdaten abrufen. Wenn die Benutzerdaten nicht in der Datenbank vorhanden sind, sollten sie der Datenbank hinzugefügt werden. nicht registriert. Wir verfolgen alle Benutzer auf der Seite. (die Häufigkeit, mit der sie die Website besucht haben, und ihre ID)
BEARBEITEN: Wir verfolgen keine Benutzer-Anmeldeinformationen. Oder melden Sie sich an. Wir erfassen in unserer Datenbank, wie oft sie die Website besuchen.
Ich habe versucht, es mit GET einzurichten und dann mit onSuccess die POST-Anfrage auszuführen, aber das scheint übertrieben zu sein.
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
也许有更好的方法。例如,如果您使用 DynamoDB,则可以使用 更新项目。这允许您更新项目(如果存在),或者发布新项目(如果不存在)。此外,通过使用 ReturnValues
参数,该操作将返回您想要的任何属性。您可以通过其中一个调用来获得您想要的一切。
但如果没有,这对我来说看起来不错。如果您想避免嵌套回调,可以使用 async
和 await
语法分隔调用:
export default function handler(req, res) { if (req === "GET") { const result = await getRequest(); if (result.isEmpty()) { postRequest(); } } }