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