Визуализация страницы анимации, ЗАТЕМ перенаправление на домашнюю страницу с помощью Node.js

#javascript #node.js #express #settimeout

#javascript #node.js #экспресс #settimeout

Вопрос:

Добрый день всем! Я использую другой подход к моему последнему вопросу. Я пытаюсь реализовать анимацию страницы загрузки при посещении ‘/’ в течение 3 секунд, а затем перенаправить на домашнюю страницу. Я получаю сообщение об ошибке, что я не могу установить заголовки после отправки клиенту, и я просто не уверен, как это обойти. Я заставил перенаправление работать, я просто не знаю, как получить начальный рендеринг страницы анимации.

 var express = require('express');
var router = express.Router();
var path = require('path');



/* GET home page. */
router.get('*', function(req, res, next) {
  res.render('index-loading-animation')
  setTimeout(function () {
      res.redirect('/')
  }, 3000);
})


module.exports = router;  

Ответ №1:

HTTP просто так не работает.

Клиент отправляет запрос на сервер. Сервер выдает ответ.

Он может сказать: «Вот HTML-документ с некоторой анимацией в нем», или он может сказать: «То, что вы просили, можно найти по этому URL вместо этого».

Он не может сказать оба, потому что два утверждения противоречат друг другу.

Если вы хотите перейти к новому URL-адресу после завершения анимации, сделайте это с помощью клиентского кода.

Комментарии:

1. Я нашел фрагмент кода, который сработал. При рендеринге домашней страницы возникает небольшая ошибка, но она работает. Я не уверен, что означает res.write(html n), вы знаете? /* ПОЛУЧИТЬ домашнюю страницу. / router.get(» , function(req, res, next) { res.render(‘index-loading-animation’, (ошибка, html) => { res.write(html ‘n’); setTimeout(() => { res.render(‘index’, (ошибка, html)=> { res.end(html ‘n’); }) },5000); }); })