Вопрос по node.js, express – Перезагрузите страницу после res.redirect ('назад') в маршруте

1

Я работаю над приложением, которое позволяет загружать изображения и создавать альбомы. Все работает хорошо, примите, что после создания альбома новый альбом не отображается на клиенте, пока страница не будет перезагружена, и я не могу понять, как решить эту проблему.

Ниже приведен маршрут для создания альбома. Можно ли каким-то образом использовать что-то еще, кроме res.redirect («назад») в этом случае, чтобы страница была перезагружена после завершения маршрута?

Конечно, я мог бы сначала скопировать / вставить код из маршрута для загрузки страницы, но это было бы ОЧЕНЬ СУХОЙ. Может быть, я могу назвать другой маршрут из этого маршрута?

маршрут:

<code>app.post('/album', function(req, res){

    var newAlbum = new albumModel.Album();

    newAlbum.imageName = req.body.albumPicsName;
    newAlbum.imageId = req.body.albumPicsId;
    newAlbum.title = req.body.albumTitle;

    newAlbum.save(function (err) {
        if (err) {
            console.log(err);
            // do something
            console.trace();
        }
        res.redirect('back');
    });
});
</code>

Ваш Ответ

2   ответа
1

ck, чтобы вызвать полную перезагрузку, но получить тот же тип обратной связи.

4

req.get('Referrer') так что если "/ альбомы" Если вы являетесь вашим реферером, у вас могут возникнуть проблемы с браузером, возвращающим статус HTTP 304 (не измененный) или кэшированную страницу браузера (часто). Если у вас возникла эта проблема, вы можете сделать несколько вещей:

Отправьте несколько заголовков очистки кэша:

res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
res.redirect('back');

Или измените URL:

 var url = require('url');
 var u = url.parse(req.get('Referrer'), true, false);
 u.query['v'] = +new Date(); // add versioning to bust cache 
 delete u.search;
 res.redirect(url.format(u));  

Конечно, если вы знаете URL-адрес, такой как «/ альбомы»; Вам не нужно идти через все это, чтобы добавить некоторые версии - просто добавьте текущую метку времени в строку URL.

Первый способ чище и лучше работает IMO. Я видел случаи, когда на странице нет реферала, хотя я явно пришел с другой страницы из-за кеширования.

Похожие вопросы