Назовите разницу между 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().

Уровень

  • Рейтинг:

    1

  • Сложность:

    3

Навыки

  • Express

Ключевые слова

Подпишись на Node.js Developer в телеграм