Node.js has a modular architecture with the V8 engine providing JavaScript execution and libuv handling asynchronous operations. Core modules can be implemented in either C++ or JavaScript. When a module is required, Node.js checks its cache and compiles the source before returning the exports object. This allows seamless usage of both native and JavaScript modules.