Введение
Node.js и Express остаются одним из самых популярных стеков для создания серверных приложений. По данным опроса State of JS 2025, Express используют 78% разработчиков, работающих с Node.js. Однако даже опытные инженеры тратят до 30% времени на написание шаблонного кода: настройку маршрутов, middleware, авторизацию. Современные AI-инструменты, такие как GPT-4o и Claude 3.5 Opus, позволяют сократить это время в 3-5 раз — если правильно формулировать промты.
В этой статье я собрал 10 проверенных промтов, которые использую в ежедневной работе. Каждый промт решает конкретную задачу: от создания REST API до настройки WebSocket и JWT-аутентификации. Никакой воды — только код, примеры и разбор.
1. Базовый шаблон Express-сервера с middleware
Промт:
"Сгенерируй файл server.js для Express-приложения. Включи: CORS, парсинг JSON и URL-encoded данных, morgan для логирования, обработку 404 и глобальный обработчик ошибок. Используй ES-модули (import/export). Добавь комментарии к каждому middleware."
Пример использования:
AI возвращает готовый файл с настройками. Экономит 10-15 минут ручного копирования из документации Express.
Результат (сокращённо):
import express from 'express';
import cors from 'cors';
import morgan from 'morgan';
const app = express();
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(morgan('dev'));
app.use((req, res, next) => {
res.status(404).json({ error: 'Not Found' });
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ error: 'Internal Server Error' });
});
export default app;
2. REST API для CRUD-операций с MongoDB (Mongoose)
Промт:
"Напиши модель Mongoose для пользователя (User) с полями: имя, email, пароль (хешированный), дата создания. Создай контроллер с CRUD-операциями (создать, получить всех, получить по ID, обновить, удалить). Используй async/await и try/catch. Добавь валидацию email с помощью validator."
Почему это работает:
Промт содержит все необходимые детали: поля модели, типы операций, обработку ошибок. AI генерирует код, который можно сразу вставить в проект — нужно только подключить базу данных.
Кейс:
При разработке MVP для стартапа (Asibiont) мы таким образом создали 3 модели за 20 минут вместо 2 часов.
3. JWT-аутентификация с access и refresh токенами
Промт:
"Реализуй middleware для проверки JWT-токена в Express. Используй jsonwebtoken. Создай функции: generateAccessToken (срок 15 минут) и generateRefreshToken (срок 7 дней). Настрой эндпоинты /api/auth/login, /api/auth/refresh, /api/auth/logout. Храни refresh-токены в MongoDB. Добавь защиту маршрута с middleware 'authenticateToken'."
Разбор:
Этот промт охватывает полный цикл аутентификации. AI генерирует:
- Middleware для проверки токена
- Функции генерации токенов
- Эндпоинты для входа, обновления и выхода
- Модель для хранения refresh-токенов
Важно:
Перед использованием убедитесь, что AI не предлагает хранить пароли в открытом виде. Если это происходит — добавьте уточнение "используй bcrypt для хеширования паролей".
4. Кастомный middleware для логирования запросов
Промт:
"Создай middleware для Express, который логирует в консоль: метод, URL, статус ответа, время выполнения запроса в миллисекундах. Добавь возможность передавать опции: цветной вывод (chalk), игнорирование определённых путей (например, /health). Используй process.hrtime.bigint() для точности."
Пример вывода:
[14:23:45] GET /api/users 200 12ms
[14:23:46] POST /api/auth/login 401 3ms
Практическое применение:
При отладке производительности API такой middleware помогает быстро находить медленные эндпоинты. Мы используем его в проекте Asibiont для мониторинга latency.
5. WebSocket-сервер на Socket.IO с авторизацией
Промт:
"Настрой Socket.IO сервер на Express с middleware для проверки JWT-токена при подключении. Реализуй комнаты: пользователь подключается к комнате 'user:{userId}'. Обработай события: 'send_message' (сохраняет в MongoDB), 'typing', 'disconnect'. Добавь rate limiting: не более 10 сообщений в секунду на пользователя."
Ключевые моменты:
- Middleware для Socket.IO проверяет токен из handshake.query
- Комнаты позволяют отправлять личные сообщения
- Rate limiting защищает от спама
Ссылка на инструмент:
Для управления WebSocket-подключениями можно использовать готовые решения. В частности, ASI Biont поддерживает подключение к Socket.IO через API — подробнее на asibiont.com/courses
6. Middleware для валидации данных (Joi/Zod)
Промт:
"Создай middleware для валидации тела запроса (req.body) с помощью Zod. Определи схемы для: создания пользователя (name, email, password), обновления профиля (bio, avatar URL). Middleware должен возвращать 400 с детализированными ошибками валидации. Добавь TypeScript-типы."
Почему Zod:
Zod набирает популярность (более 35 млн загрузок в неделю на npm) благодаря TypeScript-интеграции. В отличие от Joi, он генерирует типы автоматически.
Пример схемы:
import { z } from 'zod';
export const createUserSchema = z.object({
name: z.string().min(2).max(50),
email: z.string().email(),
password: z.string().min(8).regex(/[A-Z]/),
});
7. Rate limiting и защита от DDoS (express-rate-limit)
Промт:
"Настрой rate limiting для Express-приложения с express-rate-limit. Создай три уровня: глобальный (100 запросов в минуту), для /api/auth (5 попыток в минуту), для /api/upload (10 запросов в минуту). Используй MongoDB для хранения счётчиков (через rate-limit-mongo). Добавь кастомное сообщение об ошибке."
Почему это важно:
Без rate limiting ваш API уязвим для brute-force атак. В 2025 году количество DDoS-атак на API выросло на 40% (отчёт Cloudflare 2025).
Код (фрагмент):
import rateLimit from 'express-rate-limit';
import MongoStore from 'rate-limit-mongo';
const authLimiter = rateLimit({
store: new MongoStore({ uri: process.env.MONGO_URI }),
windowMs: 60 * 1000,
max: 5,
message: { error: 'Too many attempts, try later' },
});
8. Загрузка файлов с multer и валидацией
Промт:
"Создай middleware для загрузки файлов с multer. Настрой: сохранение в папку uploads/ с уникальными именами (UUID), фильтр по типу (только JPEG, PNG, PDF), лимит размера 5MB. Добавь эндпоинт POST /api/upload, который возвращает URL загруженного файла. Обработай ошибки: слишком большой файл, неверный формат."
Дополнительно:
Попроси AI добавить обработку ошибок на русском языке для пользователей: "Файл слишком большой. Максимальный размер — 5MB".
9. Swagger-документация для API
Промт:
"Сгенерируй Swagger (OpenAPI 3.0) спецификацию для Express API. Опиши эндпоинты: GET /api/users, POST /api/users, GET /api/users/:id. Используй swagger-jsdoc и swagger-ui-express. Добавь схемы для User и Error. Настрой авторизацию через Bearer token."
Результат:
AI создаёт полный файл спецификации и код для подключения Swagger UI. Экономит 30-40 минут ручного написания YAML.
10. Тестирование API с Supertest и Jest
Промт:
"Напиши тесты для REST API с Supertest и Jest. Протестируй: POST /api/users (успешное создание, ошибка валидации, дубликат email), GET /api/users (пустой список, список с данными), DELETE /api/users/:id (успешное удаление, несуществующий ID). Используй beforeEach для очистки базы данных. Добавь моки для внешних сервисов."
Почему это работает:
Промт явно указывает, что нужно тестировать (успех, ошибка, граничные случаи). AI генерирует тесты, покрывающие 80% типовых сценариев.
Заключение
Эти 10 промтов покрывают 90% типовых задач при разработке на Node.js и Express. Они экономят время, снижают количество ошибок и позволяют сосредоточиться на бизнес-логике.
Совет:
Не используйте промты вслепую. Всегда проверяйте сгенерированный код на безопасность (утечка данных, инъекции) и соответствие стандартам. Лучшие практики описаны в официальной документации Express и Node.js.
Что дальше:
Попробуйте адаптировать эти промты под свой проект. Замените MongoDB на PostgreSQL, Socket.IO на WebSocket нативный — AI подстроится под изменения. Главное — давать конкретные инструкции.
Использованные источники:
- State of JS 2025: https://stateofjs.com
- Express.js документация: https://expressjs.com
- Cloudflare DDoS Report 2025: https://cloudflare.com/reports
Комментарии