【问题标题】:How can I get live feedback from my backend?如何从后端获得实时反馈?
【发布时间】:2017-10-01 18:21:50
【问题描述】:

我在客户端使用 POST jQuery 请求。这个 post 请求启动一个函数。当功能完成时(将一些东西放在 mongodb 中),我希望客户端更新网站上的数据,而无需用户刷新。

你们能给我一些想法吗?我什至不知道如何接近它或如何谷歌它:/

我的堆栈是:Nodejs、Express、EJS、MongoDB 和 jQuery

【问题讨论】:

  • 如果您向我们展示您的客户端代码,我们会更容易为您提供帮助。但是您想要的是 AJAX,您可以使用它在客户端和服务器应用程序之间进行通信。您可以找到更多信息here
  • @BThuy 客户端只是一个简单的带有preventDefault的jQuery ajax帖子,因此客户端在发布后不会刷新。所以我已经在使用 AJAX。我只是不知道如何使用 AJAX 等待后端完成。
  • 您需要使用 res.json 将该数据发送回客户端,然后使用您想要使用的 JS 或 jQuery 将其添加到 DOM

标签: javascript jquery node.js mongodb express


【解决方案1】:
  • 您需要构建一个 AJAX 请求,您已经拥有该请求
  • 然后在您的后端中,当您提到的函数完成处理客户端请求并将其写入数据库时​​,您需要使用 res.json 将其发送回客户端

    router.post('/whatever_endpoint_you_are_using', function(req, res, next) {
      // code for processing the response & writing stuff to the database
      // then send the data back to the client
        res.json({"data": your_data});   
    });
    
  • 然后你可以在客户端访问这些数据,在你的 AJAX 请求的成功回调中

    success: function(response){
       console.log(response.data) // your_data
    }
    
  • 最后,您可以使用 JS 或 jQuery 将此数据添加到 DOM(您提到您使用的是 jQuery,所以这里是一个 jQuery 示例)

    $('#data_container').append('<p>'+response.data+'</p>')
    
    // or something similar I don't know how your page is structured
    

【讨论】:

  • 感谢您的回答!但我仍然不明白我将如何将数据发送回客户端?我应该使用哪个命令?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多