Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Пример запроса на чтение из БД
Основной пример с SQL
Вот классический пример чтения данных из PostgreSQL:
const pool = require('./db'); // подключение к БД
async function getUserById(userId) {
const query = 'SELECT id, name, email, created_at FROM users WHERE id = $1';
const result = await pool.query(query, [userId]);
return result.rows[0];
}
// Использование
const user = await getUserById(123);
console.log(user); // { id: 123, name: 'John', email: 'john@example.com', ... }
С использованием ORM (Sequelize/Prisma)
Более современный подход с Prisma:
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function getUserById(userId) {
const user = await prisma.user.findUnique({
where: { id: userId },
select: {
id: true,
name: true,
email: true,
createdAt: true
}
});
return user;
}
Чтение нескольких записей
Часто нужно получить список с фильтрацией и пагинацией:
async function getActiveUsers(page = 1, limit = 10) {
const offset = (page - 1) * limit;
const query = `
SELECT id, name, email, status
FROM users
WHERE status = 'active'
ORDER BY created_at DESC
LIMIT $1 OFFSET $2
`;
const result = await pool.query(query, [limit, offset]);
return result.rows;
}
С использованием кэша
В production часто кэшируют частые запросы:
const redis = require('redis');
const client = redis.createClient();
async function getUserCached(userId) {
const cached = await client.get(`user:${userId}`);
if (cached) {
return JSON.parse(cached);
}
const query = 'SELECT * FROM users WHERE id = $1';
const result = await pool.query(query, [userId]);
const user = result.rows[0];
if (user) {
await client.setEx(`user:${userId}`, 3600, JSON.stringify(user));
}
return user;
}
Ключевые моменты
Параметризованные запросы — всегда используй $1, $2 (PostgreSQL) или ? (MySQL), никогда не склеивай строки (SQL injection)
Обработка ошибок — оборни в try/catch и логируй ошибки на уровне выше
Оптимизация — выбирай только нужные поля через SELECT, используй индексы для WHERE условий
Асинхронность — все операции с БД async, никогда не блокируй event loop
Похожие вопросы
- Что такое async/await?
- Как передаются параметры функций в JavaScript?
- Сталкивался ли с JOIN
- Сколько времени потребуется для выхода на работу?
- Что ожидаешь от вакансии?
- Какой используешь стек на backend части проекта?
- Сталкивался ли с тестами
- Расскажи про проекты на Express
- Для чего используется SQL?
- Чем занимался на прошлых проектах?
- Все ли проекты писал на Node.js
- Сколько было крупномасштабных проектов на Node.js?
- Как будешь планировать рабочий день на удаленке?
- Есть ли какая-либо цель?
- Почему выбрал Node.js?
- Приведи пример использования clouser
- Есть ли список требований к коду для Code Review?
- Приведи пример проекта который реализовал в последнее время
- На что будешь опираться при расстановке приоритета задач?
- Участвовал ли в дискуссиях