实时聊天不存储消息

时间:2019-10-31 17:00:10

标签: node.js mongodb express socket.io

嗨,我正在尝试将消息存储在数据库中,以便当用户再次重新加载页面时可以显示消息。已存储用户和日期,但未存储发送的消息。谁能指出我错过了什么?

(main.js)

$(document).ready(function(){
  var socket = io();
  socket.on('chat', addChat);
    getChats();
    $('#send').click(()=>{
      var chatMessage = {
        name: $('#txtName').val(),
        chat: $('#txtMessage').val()
      }
      postChat(chatMessage);
    });

  function postChat(chat){
    $.post('http://localhost:3000/chats', chat);
  }
  function getChats(){
    $.get('/chats', (chats)=>{
      Object.keys(chats).forEach(function(chats){
        chats.addChat;
      });
    });
  }
  function addChat(chatObj){
    $('#messages').append(`<h5>${chatObj.name} </h5><p>${chatObj.chat}</p>`);
  }
});

(app.js)

app.post('/chats', async(req, res)=>{
    try{
        let chat = new Chat();
        chat.user = req.body.name;
        chat.message = req.body.message;
        await chat.save();
        res.sendStatus(200);
        io.emit('chat', req.body);
    }
    catch(error){
        res.sendStatus(500);
        console.error(error);
    }
});

app.get('/chats', (req, res)=>{
    Chat.find({}, (error, chats)=>{
        if(error){
            console.log(error);
        }
        else{
            res.render('chat',{
                chats: chats
            });
        }
    });
});

1 个答案:

答案 0 :(得分:1)

糟糕的错字..我不好存储错误的变量..

.orange,
.yellow {
  display: inline-block;
}