Voici un exemple de backend pour une méthode de post pour mettre à jour un blog sur lequel je travaille :
app.post('/blogUpdate', checkAuthenticated, async (req, res) => {
try {
const newContent = req.body.blogInput
const template = '<p>' + newContent.replace(/\n{2,}/g, '</p><p>').replace(/\n/g, '<br>') + '</p>'
const newDate = Date.now().toString()
const postDate = req.body.date
db.getConnection( async (err, connection) => {
if (err) throw (err)
const contentUpdate = "UPDATE post SET content = ? WHERE date = ?"
const dateUpdate = "UPDATE post SET updatedDate = ? WHERE date = ?"
const blogContentUpdate = mysql.format(contentUpdate, [template, postDate])
const blogDateUpdate = mysql.format(dateUpdate, [newDate, postDate])
await connection.query (blogContentUpdate, (err, _result)=> {
if (err) throw (err)
})
await connection.query (blogDateUpdate, (err, _result)=> {
connection.release()
if (err) throw (err)
})
})
res.redirect('/blog')
} catch {
res.redirect('/blogInput')
}
})
Dans ce cas, je capture les modifications (req.body.blogInput) apportées à un blog existant en sélectionnant la date de publication originale (une valeur UNIX unique garantie qui n'est jamais modifiée, c'est-à-dire postDate), en la convertissant en html (modèle), en stockant le nouveau contenu modélisé dans une base de données avec une nouvelle date de mise à jour (newDate, qui est placée dans un champ de table SQL différent de la postDate originale), puis en redirigeant vers une page accessible au public qui affiche les blogs. Cependant, la redirection est trop rapide et les modifications n'apparaissent pas au chargement. En d'autres termes, l'ancien contenu du blog est affiché. Un rafraîchissement rapide montre toujours les modifications qui viennent d'être apportées. Comment puis-je retarder la redirection de sorte que les modifications soient visibles au chargement de la page de redirection ?