Quick Reference
| Topic | File |
|---|---|
| Callbacks, Promises, async/await, event loop | async.md |
| CommonJS vs ESM, require vs import | modules.md |
| Error handling, uncaught exceptions | errors.md |
| Readable, Writable, Transform, backpressure | streams.md |
| Memory leaks, event loop blocking, profiling | performance.md |
| Input validation, dependencies, env vars | security.md |
| Jest, Mocha, mocking, integration tests | testing.md |
| npm, package.json, lockfiles, publishing | packages.md |
Critical Traps
fs.readFileSyncblocks entire server — usefs.promises.readFile- Unhandled rejection crashes Node 15+ — always
.catch()or try/catch process.envvalues are strings —"3000"not3000, parseInt neededJSON.parsethrows on invalid — wrap in try/catchrequire()cached — same object, mutations visible everywhere- Circular deps return incomplete export — restructure to avoid
- Event listeners accumulate —
removeListeneroronce() asyncalways returns Promise — even for plain returnpipeline()over.pipe()— handles errors and cleanup- No
__dirnamein ESM — usefileURLToPath(import.meta.url) Buffer.from(string)— encoding matters, default UTF-8