Перевести jQuery в функцию Express - PullRequest
0 голосов
/ 24 октября 2019

Я уже несколько часов пытаюсь показать часы на своем веб-сайте, я использую экспресс js и pug, у меня есть функция, показывающая мне время, однако она не циклически повторяется каждую секунду,в jquery он отлично работает для меня.

Jade, Pug, Express JS, Node JS

Pug + jQuery

script.
      function update(){
        $('#clock').html(moment().format('MMMM D, YYYY H:mm:ss a'));
      }
      setInterval(update, 1000)

Express JS app.js

app.get('/', (req, res) => {
    res.render('index', { mensaje: moment().format('MMMM Do YYYY, h:mm:ss a')});
});

Index.pug

.col-md-6
  span#clock.clock 
.col-md-6
  p= mensaje

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 25 октября 2019

Хорошо, если я понял, что вы сказали: вы хотите сделать часы, используя express + pug и ожидать того же поведения, что и с pug + jquery.

Они не работают одинаково.

С помощью экспресс вы работаете с веб-сервером, который прослушивает запрос и дает ответ. Он отправляет новый ответ (обновленные данные) только тогда, когда вы делаете запрос. Jquery находится на стороне клиента, поэтому вы можете легко обновить представление новыми данными.

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

Обычно лучший способ показать что-то очень универсальное (например, часы) - это сделатьна стороне клиента, поэтому ваш jquery-подход был лучшим в вашем случае (на мой взгляд).

...