Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Обновление даты (https://javascript.ru/forum/node-js-io-js/73294-obnovlenie-daty.html)

Artur_Hopf 04.04.2018 16:53

Обновление даты
 
Добрый вечер, начал изучать node js написал такой код:
var express = require('express'); //подключил модуль express
var app = express();
var moment = require('moment'); // подключил модуль для работы с датой

//создал в папке views файлик test.ejs

app.set('view engine', 'ejs');

//функция для отображения даты

var dateTime = function () {
    moment.locale('ru');
    day = moment().format('L');
    time = moment().format('LTS');
    return day + ' ' + time;
};

// передаю результат функции в  файлик test.ejs

app.get('/', function (req, res) {
    res.render('newshtml', {date: dateTime()});
});
app.listen(3000); //порт 3000

// в файлике такая строка

<body>
   <div><%= date %></div>
</body>


Все замечательно на сейте выводится текущая дата.
Теперь сам вопрос, а как сделать чтобы дата обновлялась?

В консоль я могу вывести так и все работает:
setInterval(function () {
console.log(dateTime());
},1000);

А как передать в test.ejs внутрь <div>?

Artur_Hopf 23.04.2018 10:33

Разобрался я. Подключаем модуль ws:
const WebSocketServer = require('ws').Server;

webSocketServer.on('connection', function(ws){
    var timer = setInterval(function(){
          ws.send(dateTime());
    }, 1000);
    console.log("клиент подключился");
    
    ws.on('close', function(){
        console.log('клиент отключился');
        clearInterval(timer);
    });
});

const dateTime = function () {
    moment.locale('ru');
    day = moment().format('L');
    time = moment().format('LTS');
    return day + ' ' + time;
};


Часовой пояс GMT +3, время: 03:42.