Назовите разницу между res.send() и res.json().
Этот вопрос проверяет знание методов Express.js для отправки ответов клиенту.
Короткий ответ
res.send() отправляет ответ любого типа, автоматически устанавливая заголовок Content-Type в зависимости от данных. res.json() предназначен для отправки JSON-объектов и автоматически форматирует данные в JSON. Выбирайте res.json(), если работаете только с JSON-данными, и res.send(), если требуется гибкость в типах данных.
Длинный ответ
Ключевые различия между res.send() и res.json():
Назначение:
res.send(): Отправляет данные любого типа (строка, объект, буфер).
res.json(): Специализирован для отправки JSON.
Форматирование:
res.send() не форматирует объект в JSON, он отправляет его как есть.
res.json() автоматически сериализует объект в JSON-строку.
Заголовки:
res.json() всегда устанавливает заголовок Content-Type: application/json.
res.send() устанавливает заголовок на основе типа данных.
Пример использования:
// res.send() example
app.get('/send', (req, res) => {
res.send('<h1>Hello World</h1>'); // HTML content
});
// res.json() example
app.get('/json', (req, res) => {
res.json({ message: 'Hello World' }); // JSON response
});
Используйте res.json(), если работаете с API, где ответы всегда в формате JSON. Для других типов данных, таких как HTML, используйте res.send().