- Internals and concepts
- Strong and weak sides of node.js u
- Stateful and stateless servers u
- Nonblocking I/O and blocking code e
- Event loop phases u
- Event loop microtasks and macrotasks u
- Garbage collection k
- Node.js LTS schedule u
- I/O-bound, CPU-bound, memory-bound tasks u
- Interactive applications (close to real-time) k
- Modularity, layers and dependencies
- CommonJS modules u
- ECMAScript modules u
- Module
node:module
u - Caching in CJS and ESM u
- Modules as singletons t
- Contexts and scripts module
node:vm
k - Dependencies:
npm
,node_modules
u - Files
package.json
,package-lock.json
u - Module-based permissions model k
- Isolation with modularity u
- Dependency injection e
- DI containers u
- Coupling and cohesion u
- Framework agnostic approach k
- Environment
- Command line arguments u
- Node.js CLI u
- Process-based permissions
- Graceful shutdown u
- Clustering u
- Watch filesystem changes with --watch k
- Internal API
- Streams API u
- Web Streams API
- Crypto API u
- Password hashing with crypto.scrypt k
- Web Crypto API k
- File system API (sync and async) u
- Copy folder recursively u
- Worker threads e
- Performance hooks k
- Native fetch and nodejs/undici u
- async_hooks k
- AsyncLocalStorage k
- AsyncResource
- Deprecated domain API
- Node.js single executable h
- SharedArrayBuffer e
- Module
node:worker_threads
e - Module
node:child_process
e - MessageChannel, MessagePort e
- BroadcastChannel e
- Generating crypto random UUID u
- Module
node:url
vsnew URL
u - Module
node:assert
u - Internationalization u
- Blob, File, Buffer, module
node:buffer
u - Module
node:zlib
k
- Network
- Endpoint throttling k
- ALPN
- SNI callback
- SSL certificates k
- Protocol agnostic approach k
- Fetch API u
- IncomingMessage
- HTTP(S) u
- TCP/SSL h
- UDP u
- TLS h
- Websocket k
- SSE h
- HTTP/3 (QUIC) h
- Long polling u
- REST u
- RPC k
- Routing u
- DoS k
- DDoS k
- XSS k
- Path traversal k
- CSRF k
- DNS k
- SQL injection u
- noDelay
- keep-alive
- IP sticky sessions k
- Technique and tools
- Native test runner u
- Logging u
- Application configuring u
- Testing u
- CI/CD u
- Readable u
- Writable u
- Transform k
- Back pressure k
- Buffer u
- Console u
- Inspector u
- Data access
- Data access layer u
- Repository u
- Active record u
- Query builder u
- Object-Relational Mapping u
- CRUD u
- DTO u
- Error handling and debugging
Error
uerror.cause
uerror.code
uerror.message
uerror.stack
uError.captureStackTrace
u- How to avoid mixins u
- Uncaught exceptions u
- Heap dump h
- Debugging tools u
- Flame graph u
- Memory leaks u
- Resource leaks k
- Data race u
- Integrations and bindings
- Native addons k
C
andC++
addons kRust
addons kZig
addons k- NAN (Native Abstractions for Node.js) k
- Node-API (formerly N-API) k
- NAPI
C
andC++
k - NAPI
Rust
k - NAPI
Zig
k - Webassembly
WAT
k - Webassembly
C
andC++
k - Webassembly
Rust
k - Webassembly
Zig
k - Webassembly
AssemblyScript
k - Shared memory k
- V8 binary serialization k