Если говорить короче, то я содаю простой чат в котором:
1) пользователь вводить текст, сабмит.
2) сокет записываетв БД то, что клиент вел и возвращает тоже самое
3) когда обновляет страницу
должны записываться те записи, которые были отправлены ранее
4) а мне приходится перезапускать сервер (ctrl+c / node app), что бы записи появились
Шаблон<div class="form">
<form action="">
<input class="m" type="text" placeholder="Введите сообщение...">
<button class="send" type="submit">Отправить</button>
</form>
</div>
<div class="sms">
<h3>
<% for (var i = 0; i < smsText.length; i++) { %>
<p><%= smsText[i].text %></p>
<% } %>
</h3>
</div>
</div>
</div>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
<code lang="javascript">
$(function () {
var socket = io();
$('form').submit((e) => {
e.preventDefault();
socket.emit('chat message', $('.m').val());
$('.m').val('');
return false;
});
socket.on('chat message', function(msg){
$('.sms').append($('<li>').text(msg));
});
});
</code>
</script>
app.js// Chat
var reqDB = 'SELECT * FROM messages';
db.query(reqDB, (err, result) => {
if (err) throw err;
for(let i=0; i < result.length; i++){
result[i].text;
}
// Chat render
app.get('/chat', function (req, res) {
res.render('chat', {
smsText: result
});
});
});
// Socket Connect
io.on('connection', function (socket) {
console.log('Socket Run...')
// Send sms
socket.on('chat message', function(msg, cl){
let sql = `INSERT INTO messages (id, text) VALUES (NULL, '${msg}')`;
db.query(sql, (err, result) => {
if (err) throw err;
console.log(result);
console.log('SMS send! YES!!!');
})
io.emit('chat message', msg);
});
// Disconnect
socket.on('disconnect', function(){
console.log('Socket STOP!');
});
});