Mi sto imbattendo in alcune cose divertenti con la cache di visualizzazione in express/Jade. Il controller recupera un articolo da MongoDB tramite Mongoose e lo passa alla funzione res.render. Tuttavia, dopo essere stato in esecuzione per un paio di minuti, Express inizia a pubblicare lo stesso modello compilato per tutte le richieste su quella rotta. Questo succede anche a condivisi. Include include che vengono utilizzati in vari modelli.express view cache acting funny
Il database sta recuperando gli articoli corretti e non importa se passo alcune stringhe casuali al modello, ottengo sempre lo stesso risultato.
Questa è la funzione di controllo:
exports.show = function(req, res) {
var articleId;
articleId = req.params.id;
Article.findOne({
_id: articleId
}).populate('author').exec(function(err, article) {
if (err) {
console.log(err);
} else {
res.render('articles/show', {
article: article,
articleId: article.id
});
}
});
};
E questo è il percorso:
app.get('/articles/:id', articles.show);
Le stesse cose accadono se sono in esecuzione in modalità di produzione o di sviluppo.
Qualcuno ha incontrato questo tipo di problemi con Express/Jade?
Con "lo stesso modello compilato", si intende lo stesso modello * reso *? Non sono sicuro che sia la cache della vista, dal momento che non è attivo quando viene eseguito in modalità dev (a meno che non sia abilitato esplicitamente?). Inoltre, la vista cache memorizza solo i modelli compilati (ma non restituiti), saranno comunque resi separatamente per ogni richiesta. Come appare la configurazione della tua app? Qualsiasi altro middleware (o forse un server proxy davanti al nodo) che potrebbe causare il problema? – robertklep
Sono d'accordo con @robertklep. Immagino sia il tuo proxy che sta memorizzando nella cache. Puoi controllare le intestazioni della risposta se vedi un'intestazione della cache? Inoltre, prova a impostare le seguenti intestazioni sul lato server. Cache-Control: no-cache, no-store, deve-revalidate Pragma: no-cache Scadenza: 0 vedere se funziona per voi http:? //stackoverflow.com/questions/49547/making- sure-a-web-page-is-not-cache-across-all-browsers –