J'essaie de mettre en œuvre une fonction middleware assez simple à mon application Express qui ajoute simplement une valeur useCache
à l'objet de requête étant passé au gestionnaire principal, mais pour une raison quelconque, je reçois un Can't set headers after they were sent
Erreur.Erreur de l'en-tête Express Middleware Définition
const cacheControl = (req, res, next) => {
if (lastPulled === null) lastPulled = Date().getDay()
req.useCache = Date().getDay() === lastPulled
next()
}
app.use(cacheControl)
app.get('/missions', (req, res) => {
if (req.useCache) res.status(200).json({ result: cache })
fetch(dumpUrl)
.then(data => data.text())
.then(result => {
cache = result
res.status(200).json({ result })
})
.catch(e => res.status(500).json({ result: e.message }))
})
J'ai lu que la plupart du temps si l'erreur est produite par le middleware est dû à plusieurs next()
appels, mais cela ne s'applique pas ici, à moins que je me manque quelque chose évidente.
Lorsque je supprime le middleware cacheControl
de l'application, il n'y a plus d'erreur, mais je n'arrive pas à comprendre ce qui cause l'erreur dans la fonction! Tous les pointeurs sont utiles!