Что такое process в Node.js

process - это глобальный объект среды Node.js. При этом process не является альтернативой window, за это отвечает global:
process отвечает за ход выполнения скрипта, управление события во время процесса выполнения (например process.on('exit')) и т.д.

Событие: 'exit'
Срабатывает при закрытии скрипта, то есть когда нажимаешь Ctrl + C во время работы программы. У самого process.exit() есть коды, среди которых есть Uncaught Fatal Exception к примеру. С полным списком кодов ошибок process.exit'а мы ознакомимся позже.

На выводе мы получаем нолик.
Событие: 'uncaughtException'
Триггерится если не обработано исключение, или другими словами переменная не существует.

Событие: 'warning'
Если при работе программы вдруг появились предупреждения, их можно тоже захендлить, причём с разными параметрами. Все параметры можно посмотреть здесь.

Есть ещё несколько других событий, но они очень специфичны и используются реже.
process.exit()
Закрывает процесс с выходным кодом. Если программа работает правильно, то код равен нулю. Изменить код при выходе можно также через process.exitCode.

process.abort()
Закрывает процесс без каких-либо кодов. Если попробовать посмотреть код выхода, вылезут странные символы.

process.argv
Массив, состоящий из аргументов коммандной строки. Первый - это среда выполнения, т.е. node.exe, второй - то, что выполняется.

process.chdir()
Данная функция позволяет менять директорию прямо на ходу

process.cwd()
Выводит текущую директорию. Альтернатива __dirname:

process.cpuUsage() и process.uptime()
cpuUsage() - Показывает сколько времени было затрачено на выполнение программы в микросекундах. Чтобы перевести в секунды нужно поделить на 10 в 6 степени.
uptime() - сколько времени работает программа

process.emitWarning()
То же что и console.warn(), только с более расширенной настройкой. Также можно привязать объект Error, тогда можно будет указать параметры name, message и stack:

process.hrtime()
Выводит примерное время в виде массива с двумя значениями [секунды, наносекунды]. Основная задача - тестить перфоманс кода, т.е. бенчмарк:

process.memoryUsage()
Показывает использование памяти в байтах.

process.platform, process.release, process.version
Первое свойство показывает что у вас за устройство. Второе - откуда нода скачана. Третье - какая версия у ноды.

process.nextTick()
Функция вызывает коллбек как только событийный цикл завершается. То есть сначала срабатывает сама функция, а потом то, что привязано к nextTick. Что-то вроде события.

process.openStdin()
С помощью данной функции можно организовать ввод. Сначала мы открываем ввод, затем при введении данных (событие срабатывает после ввода одной строки) срабатывает функция. У нас при вводе сообщается что мы ввели и завершается процесс.

Заключение
Были показаны не все свойства и методы, потому что например process.getuid() работает только для POSIX систем (не Windows). Решил попробовать использовать красивые скриншоты, но они отнимают ужасно много времени, поэтому в следующий раз будет обычный код.