Во-первых, поскольку вы публикуете этот вопрос сейчас, я предполагаю, что вы используете Express 4.x вместо 3.x, то есть версии Express, на которую есть ссылка в той публикации SO, на которую вы ссылаетесь, поэтому не следуйте совет этого поста, который несколько лет назад. Функциональность многих функций изменена с версии 3 на версию 4, поэтому многие ответы о поведении определенных функций могут быть устаревшими. Документацию по Express 4 можно найти здесь .
Я думаю, что вы можете путать функцию app.set()
для функции res.set()
. Функция app.set()
устанавливает настройки приложения для вашего приложения, а не значения заголовка для объекта ответа. См. здесь для получения дополнительной информации о том, как использовать функцию app.set()
.
Если вы хотите установить отдельные значения заголовка для объекта ответа, вам нужно использовать функцию res.set()
. Документацию для функции res.set()
можно найти здесь . С помощью этой функции вы можете установить индивидуальные или множественные значения заголовка в зависимости от того, какие параметры вы передаете в функцию. Вы бы вызвали эту функцию в функции обратного вызова вашего индивидуального определения маршрута.
И для решения вашей первоначальной проблемы, описанной выше, функция res.status()
просто устанавливает свойство res.statusCode
объекта ответа на любое указанное вами значение, тогда как функция res.json()
устанавливает тело объекта ответа на указанный вами объект JSON. Короче говоря, ни одна из этих или каких-либо других функций Express автоматически не добавляет значения к объекту ответа без явного указания на это.