NestJS plus Prisma is my default for typed Node APIs. Here is the setup I reuse.
Project Structure
One module per domain, a shared Prisma module, and DTOs validated with class-validator.
Global Validation Pipe
Enable it once in main.ts with whitelist and transform turned on.
Pagination Pattern
Cursor pagination with take/skip guards keeps large tables fast.
Testing
Spin up the module with an isolated test database per suite.