Как получить значение max-age из заголовка cache-control, используя запрос в Nodejs? - PullRequest
1 голос
/ 10 февраля 2020

Я использую запрос для запроса страницы со следующим кодом:

request(url, { json: true }, (err, res, body) => {
    if (err) {
        return null
    } else {
        console.log("res", res.headers["cache-control"]);
    }
})

Я могу получить заголовок контроля кэша таким образом. Но как мне получить значение max-age, которое находится в заголовке элемента управления кэшем, например cache-control: public, max-age=20140, must-revalidate, no-transform? Есть ли какие-либо сокращения или я должен делать строковые манипуляции?

1 Ответ

1 голос
/ 10 февраля 2020

Сокращений нет - заголовки - это просто пары ключ / значение, и в JS нет стандартных библиотек для анализа значений структурированных заголовков.

Вы можете просто использовать регулярное выражение, чтобы извлечь число:

const headers = {
  'cache-control': 'public, max-age=20140, must-revalidate, no-transform'
}

const matches = headers['cache-control'].match(/max-age=(\d+)/)

const maxAge = matches ? parseInt(matches[1]) : -1

console.log(maxAge)
...