С какими базами данных ты работал в контексте Node.js?

«С какими базами данных ты работал в контексте Node.js?» — вопрос из категории Базы данных, который задают на 35% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В проектах на Node.js я работал с несколькими типами баз данных, выбирая их под конкретные задачи:

  • PostgreSQL: Использовал для хранения структурированных, реляционных данных, где важны транзакции, ACID-свойства и сложные JOIN-запросы. Работал с драйвером pg и ORM Sequelize/TypeORM.
  • MongoDB: Применял в проектах, где требовалась гибкая схема данных и быстрая горизонтальная масштабируемость. Использовал ODM Mongoose.
  • Redis: Применял как кэш для ускорения ответов API (например, кэширование результатов тяжёлых запросов к БД) и как брокер сообщений с помощью bull для фоновых задач.
  • MySQL: Сталкивался в legacy-проектах и при интеграции с существующими системами.

Пример подключения к MongoDB с Mongoose и настройкой схемы:

const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true }
});
const User = mongoose.model('User', userSchema);

async function connectDB() {
  await mongoose.connect(process.env.MONGODB_URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  });
}

Видео-ответы