нужно использовать express и mongoose
Почему не koa + sequelize или knex?:)
как вообще "скрестить" реакт и ноду
Проще всего взять next.js, КМК (
пример с TS). Вообще волшебные слова для гугла — "react SSR express".
в гайде на мдн используют библиотеку async для асинхронных запросов, где-то используют промисы в других гайдах...
А в совсем свежих гайдах будут использовать async/await... Если нужно по работе и срочно, то делайте на чем удобнее. Если цель -- обучится, есть время и на проде можно поставить последний LTS — async/await. Если понимаете коллбэки/замыкания в JS, то поймете и промисы. Если понимаете промисы, то async/await это, по сути, просто сахар над промисами.
По mongoose посоветовать особо нечего -- как и express, это библиотека, а не полное решение. В общем, как и везде -- если приложение небольшое, то вызывайте методы моделей прямо из контроллеров; если разрастается, то выделяйте слой сервисов.