J'utilise request pour demander une page avec le code suivant :

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

Je peux obtenir l'en-tête de contrôle de cache de cette façon. Mais comment obtenir la valeur max-age qui se trouve dans l'en-tête de contrôle de cache, comme cache-control: public, max-age=20140, must-revalidate, no-transform ? Y a-t-il un raccourci ou dois-je faire des manipulations de cordes ?

1
rockfight 10 févr. 2020 à 19:45

1 réponse

Meilleure réponse

Il n'y a pas de raccourci - les en-têtes sont simplement des paires clé/valeur et il n'y a pas de bibliothèques standard dans JS pour analyser les valeurs d'en-tête structurées.

Vous pouvez simplement utiliser une expression régulière pour extraire le numéro :

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)
2
sdgluck 10 févr. 2020 à 16:57