Что такое event loop и что здесь на самом деле значит однопоточность?
Node выполняет ваш JavaScript в одном потоке, а ввод-вывод отдаёт операционной системе и забирает результаты колбэками, когда те готовы. Однопоточность значит, что ваш код никогда не выполняется в двух местах одновременно — но ожидание происходит не здесь, поэтому Node дёшево держит тысячи простаивающих соединений. Следствие, которое надо помнить: медленный цикл в вашем коде блокирует все запросы, а не только свой.