есть кеширование в бразуере, когда клиент (браузер) сохраняет ресурсы у себя на основании заголовков
есть кеширование на веб-серверах, когда вебсервер сохраняет у себя в кеше ответ по какому-то ключу и заголовкам - если разные пользователи запрашивают одни и те же данные, зачем каждый раз из базы их выбирать и вообще дергать бэкэнд для этого да и не всегда клиентом выступает бразуер
есть кеширование в приложении, когда где-то (в той же сессии, например) сохраняются какие-то данные, опять же что бы не трогать БД каждый раз
можно кешировать запросы к БД что бы не нагружать ее без необходимости
а про node я не понял