fix: Behebt Endlosschleife und doppelte Recoil-Atom-Registrierung
- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen. - `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern. - `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden. - Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert. - Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben. Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
This commit is contained in:
20
pages/api back30/get-talasIP.js
Normal file
20
pages/api back30/get-talasIP.js
Normal file
@@ -0,0 +1,20 @@
|
||||
// pages/api/get-talasIP.js
|
||||
|
||||
export default function handler(req, res) {
|
||||
// Der x-forwarded-for Header könnte mehrere IP-Adressen enthalten, getrennt durch Kommas
|
||||
let clientIp =
|
||||
req.headers["x-forwarded-for"]?.split(",").map((ip) => ip.trim())[0] ||
|
||||
req.socket.remoteAddress;
|
||||
|
||||
// Entfernen möglicher IPv6 "mapped" IPv4 Adressen
|
||||
if (clientIp?.includes("::ffff:")) {
|
||||
clientIp = clientIp.split("::ffff:")[1];
|
||||
}
|
||||
|
||||
// Nur IPv4 Adressen weitergeben, IPv6 Adressen ausschließen
|
||||
if (clientIp && clientIp.includes(":")) {
|
||||
clientIp = ""; // Dies setzt die IP auf leer, wenn es sich um eine IPv6-Adresse handelt
|
||||
}
|
||||
|
||||
res.status(200).json({ ip: clientIp });
|
||||
}
|
||||
Reference in New Issue
Block a user