Клиент
<form method="POST">
<input type="text" name="title">
<button>Отправить</button>
</form>
<ul id="list"></ul>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
function getDataForm(ev) {
socket.emit('SubmitForm', { title: title.value });
title.value = '';
ev.preventDefault();
}
form.addEventListener('submit', getDataForm);
// Принимаем данные от сервера
socket.on('news', function (data) {
// Выводим данные в ul#list
});
</script>
Сервер
app.get('/', (req,res) => {
res.render('home');
});
io.on('connection', function(socket){
socket.on('SubmitForm', function (data) {
new Articles({ title : data.title }).save();
// Отправляем обновленные данные клиенту
Articles.find((err, articles) => {
socket.emit('news', articles);
}).sort({date : -1});
});
Articles.find((err, articles) => {
socket.emit('news', articles);
}).sort({date : -1});
});
При подключении, emit news отрабатывает отлично, отправляет все данные клиенту, где они уже и выводятся, но как только клиент отправляет новые новые данные на сервер, ожидается , что после добавления(new Articles), данные вновь обновятся и клиент получит уже обновленные данные.
Этого не происходит, при клике данные добавляются, но не обновляются, приходиться обновлять страницу для получения результата