В nodejs все немного подругому — нет, увы, но там совсем все иначе.
Во-первых, ваше приложение будет висеть в памяти долго и параллельно обрабатывать несколько запросов, в то время как в PHP тред сдохнет после отправки ответа на запрос; во-вторых, в node.js широко практикуется микромодульность; в-третьих, на vanilla.js вы замучаетесь писать, потому что это просто ядро js — окружение nodejs вам все равно понадобится для работы с libuv и сокетами/дескрипторами, и это будет уже не vanillajs.
Исходя из этих замечаний, пытливый читатель уже начнет догадываться, что ему нужны разные модули для:
а) веб сервера (или нет);
б) работы с хранилищами и абстракций над ними (моделей, клиентов дб с пуллом, или без, или руками все писать);
в) записи в лог (или руками stdout перенаправлять);
г) соль, перец по вкусу.
И вопрос стоит больше не в готовом фреймворке, а в наиболее подходящих частях.
Я бы порекоммендовал смотреть в сторону сырого
https://github.com/senchalabs/connect, либо чуть более полного
https://github.com/strongloop/loopback (фактически, connect с плагинами).
Если чем-то не устраивает — можно смотреть
https://www.npmjs.com/package/restify (или то, что его у себя использует:
https://www.npmjs.com/browse/depended/restify).
В качестве абстракции над моделями либо
https://github.com/sequelize/sequelize (если база будет mysql/pgsql), либо
https://github.com/Automattic/mongoose (если без разницы какая база) +
https://github.com/Tokutek/mongo.
Для веб логов —
https://github.com/expressjs/morgan
Для других логов — например,
https://github.com/winstonjs/winston + нужные транспорты
Для конфигов —
https://github.com/flatiron/nconf, если не хватает просто require("config.json")
И т.д.
Главное, понять, что чем меньше модуль, тем больше вероятность, что он стабильнее работает, и что тесты написано качественно.