Node.js is an asynchronous I/O library for JavaScript that aims to provide an easy way to build scalable network programs. It keeps slow operations from blocking other operations through non-blocking I/O and by utilizing a single-threaded event loop model. This allows Node.js applications to handle a large number of concurrent connections using a single process, without the overhead of threads. CommonJS modules provide portability for JavaScript libraries between Node.js and other environments like browsers.