Hibakeresés hibaüzenetből
Add meg a hibaüzenetet, a kódrészletet és azt, amit már próbáltál. A modell előbb rangsorolja a lehetséges okokat, és csak utána javasol javítást.
Töltsd ki a saját adataiddal
A sárgával jelölt részeket cseréld a saját adataidra.
EllenőrzésCtrl + Enter: másolás
Példa: kitöltve, mintaválasszal
- Környezet
- Node.js 22, Express 4, PostgreSQL 16, pg könyvtár
- Elvárt működés
- A /users/:id végpont visszaadja a felhasználót JSON-ben
- Hiba
- Az első néhány kérés működik, aztán a végpont lefagy, és 30 mp után: Error: timeout exceeded when trying to connect
- Kód
- app.get('/users/:id', async (req, res) => { const client = await pool.connect(); const r = await client.query('SELECT * FROM users WHERE id = $1', [req.params.id]); if (!r.rows[0]) return res.status(404).json({error:'not found'}); res.json(r.rows[0]); client.release(); });
- Eddigi próbálkozások
- Újraindítás után megint jó egy darabig. A pool max értékét 10-ről 20-ra emeltem, akkor később jön elő.
1. Mit mond a hiba? A kapcsolatkészlet (pool) nem tud szabad kapcsolatot adni a megadott időn belül: minden kapcsolat foglalt.
2. Lehetséges okok
- Kapcsolatszivárgás a 404-es ágon (nagyon valószínű). A
return res.status(404)előtt nincsclient.release(), és ha a lekérdezés hibát dob, akkor sem fut le. Mellette szól: a pool növelése csak késlelteti a hibát. Ellenőrzés: naplózd apool.totalCount,pool.idleCountéspool.waitingCountértékét kérésenként; ha az idle nullára fogy, ez az. - Lassú lekérdezés (kevésbé valószínű). Egyszerű kulcs szerinti keresésnél nem jellemző.
3. Javítás
Előtte:
const client = await pool.connect();
const r = await client.query(...);
Utána:
const r = await pool.query('SELECT * FROM users WHERE id = $1', [req.params.id]);
A pool.query maga kér és ad vissza kapcsolatot, így a client.release() sor törölhető.
4. Ellenőrzés: kérj le 30-szor egy nem létező azonosítót, majd egy létezőt. Ha a válasz azonnal jön, a szivárgás megszűnt. Mellékhatás: ha később tranzakció kell, ott újra saját klienst kell kérned, try/finally blokkal.
Szemléltető minta, Claude segítségével készült: azt mutatja, milyen jellegű és felépítésű válaszra számíthatsz. A többi ajánlott eszközzel a prompt várhatóan ugyanígy használható, de nem mindegyikben próbáltuk ki. A te eredményed más lesz. Hogyan készülnek a példák?
Miért működik?
Ha csak a hibaüzenetet illeszted be, a modell az első eszébe jutó javítást adja, ami gyakran tünetet kezel. A prompt diagnózist kér, rangsorolt okokkal és olcsó ellenőrzéssel, vagyis ugyanazt a sorrendet, ahogy egy tapasztalt fejlesztő gondolkodik.
Az „eddigi próbálkozások” mező sokat ér: a példában éppen az árulja el az okot, hogy a pool növelése csak elodázta a hibát.
Mire figyelj?
- Jelszót, API-kulcsot, kapcsolati karakterláncot és ügyféladatot törölj a kódból és a naplóból, mielőtt beilleszted.
- A modell tudása a könyvtárak verzióiról elavult lehet. Ha egy javasolt függvény nem létezik, illeszd be a hivatalos dokumentáció releváns részét.
Tippek eszközönként
- Kódasszisztensek (Cursor, Claude Code, Copilot)
- A kód mezőbe elég a fájl elérési útja; kérd meg, hogy előbb olvassa el a fájlt és a hívó kódot, és csak a diagnózis után módosítson.
Folytasd ezekkel
Ugyanabban a beszélgetésben küldd el, a válasz után.
- Írj egy tesztet, ami ezt a hibát reprodukálja, és a javítás után zöldre vált.
- Hol fordulhat még elő ugyanez a hibaminta a kódban? Mit keressek rá?
Kapcsolódó promptok
Összes fejlesztés promptFunkció specifikálása kódolás előtt
Mielőtt kódot kérnél az AI-tól, írasd meg vele a tervet. A prompt kérdésekkel tisztázza az ötletedet, majd rövid specifikációt készít elfogadási feltételekkel.
Ismeretlen kód megértése
Megörököltél egy fájlt, és nem tudod, mit csinál? Ez a prompt előbb áttekintést ad az egészről, utána a kockázatos részeket és azt, hol érdemes elkezdeni.
Kódátnézés beküldés előtt
Tapasztalt kollégaként nézi át a módosításodat: hibák és biztonsági gondok súlyosság szerint, konkrét sorral és javítási javaslattal, ízlésbeli szőrszálhasogatás nélkül.
Refaktorálási terv kis lépésekben
Nagy átírás helyett sorba rendezett, egyenként tesztelhető lépések: mit érdemes először rendbe tenni, és mihez ne nyúlj hozzá.