Node.js - это отдельный процесс.
Ваш код выполняется в отдельном процессе поверх цикла событий.
JavaScript является однопоточным. Каждый кусок кода, который вы запускаете, является однопоточным. Node.js быстр и масштабируется, потому что он блокирует , а не на IO (IO - это горлышко бутылки).
По сути, любой выполняемый вами JavaScript является однопоточным. JavaScript по своей сути однопоточен.
Когда вы вызываете части API-интерфейса nodeJS, он использует внутреннюю многопоточность на уровне C ++, чтобы убедиться, что он может отправлять вам входящие запросы на HTTP-серверы или отправлять вам файлы обратно для доступа к файлам. Это позволяет использовать асинхронный ввод-вывод
Что касается сеансов
app.use(express.session({ secret: "Some _proper_ secret" }));
...
app.get("/", function(req, res) {
if (req.session.count == null) {
req.session.count = 0;
}
res.send(req.session.count);
req.session.count++;
});