Пользовательское значение в http-ответе с выражением (не в теле) - PullRequest
0 голосов
/ 15 апреля 2019

Краткая история:

Я хочу добавить пользовательское значение в каждый ответ http с экспресс-использованием промежуточного программного обеспечения.Я не хочу, чтобы это было в моем теле.Как это сделать?


Длинная история:

Конкретным значением является строка с именем apiVersion.

Я написал это промежуточное ПО:

function apiVersionMiddleware(req, res, next) {
  res.apiVersion = "1.1";
  next();
}

Я вижу поле apiVersion, заполненное в моем объекте ответа в моем бэкэнде.Однако я не вижу его в своем http-ответе.

После прочтения некоторой экспресс-документации я обнаружил: https://expressjs.com/en/api.html#res.append. Но стоит ли добавлять пользовательский ответ в заголовки http?Должно ли оно быть здесь или в другой переменной?

1 Ответ

1 голос
/ 15 апреля 2019

Понял, что мой вопрос был больше об использовании заголовков http.

Нашел это в документации заголовок ответа . На странице заголовков вы можете найти это определение для заголовков ответа:

Заголовок ответа. Заголовки с дополнительной информацией об ответе, например о его местонахождении или о самом сервере (имя и версия и т. Д.).

Так что он идеально подходит для моего варианта использования.

Это привело меня к этому решению в экспресс-документации: https://expressjs.com/en/api.html#res.set

function apiVersionMiddleware(req, res, next) {
  res.set("api-version", "1.1");
  next();
}

Мне также пришлось добавить свой настраиваемый заголовок к моим выставленным заголовкам в cors:

app.use(
  cors({
    exposedHeaders: ["api-version"]
  })
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...