Я работаю над домашней страницей, которая отображает текстовые сообщения как часть более крупного проекта. Когда пользователь отправляет запрос GET для/домашняя страница возвращается черезNodeJS update post list
res.render('home', {
user: req.ping_session,
posts: p_l
});
P_L массив, возвращаемый моей базе данных MongoDB.
Проблема в том, что я пытаюсь обновить список сообщений без перезагрузки страницы, и я не знаю, как обновлять «сообщения», не сохраняя ее как глобальную переменную где-то через JS. Есть ли способ обновить только список сообщений? Я также думал об этом через сокеты, но я не думаю, что это действительно необходимо здесь.
Я очень благодарен вам за помощь, потому что я совершенно новичок в Node.
Заранее благодарен! :)
кода можно найти здесь: https://github.com/mkocs/ping/tree/testing https://github.com/mkocs/ping/blob/testing/routes/routes.js < - мой маршрутов файл, который возвращает страницу https://github.com/mkocs/ping/blob/testing/views/home.jade < - страница, которая вернулась
Идея состояла в том, чтобы обновить список нажатием кнопки, но я думаю, вы правы, socket.io будет лучше здесь. Спасибо :) – calmandniceperson
, если вы хотите просто обновить сообщения нажатием кнопки, вы можете легко сделать это с помощью простого старого веб-запроса. Я думал, вы хотите, чтобы это было сделано автоматически. если вы используете кнопку, вы можете просто добавить параметр 'offset' к вашему маршруту api, а затем добавить '.skip (offset)' в ваш запрос. Таким образом, вы можете заставить клиента отслеживать количество сообщений в блоге, которые он видел, и сообщить, какой из них он хочет, используя смещение. вы бы использовали ajax для этого и просто манипулировали dom, чтобы добавить этот дополнительный пост поверх остальных. – jtmarmon
Я реализовал это вчера (без части .skip (offset), сделаем это позже). Я все еще не уверен, использовать ли сокеты или нет. Я попытался реализовать это, но это была большая проблема, поэтому я пошел на хороший веб-запрос. Я не знаю, как получить свой cookie сеанса и разрешить пользователю, и получил только такие ошибки, как «Соединение закрыто до получения рукопожатия» или «Ошибка 404» (но только иногда.Любые рекомендации? – calmandniceperson