客户端JS将数据发送到nodejs Express服务器并进行响应

时间:2019-12-26 11:31:12

标签: javascript node.js express http server

我正在尝试在nodejs中创建一个upvote和downvote系统。客户端javascript应该处理upvote和downvote功能,并将数据发送到服务器,服务器将存储用户的决定。

我的问题是如何将数据发送到服务器,并且如果成功保存了upvote或downvote,如何发送回去?

客户端:

window.onload = function() {
  document
    .getElementsByClassName("upvote")[0]
    .addEventListener("click", function(event) {
      // tell the server that the user upvoted
    });  
};

在服务器上,我会做类似的事情

app.get("/", function(req, res) {
  // save req data to a file
  if (savedToFile) {
    res.send("saved successfully");
  }
  else {
    res.send("error");
  }
});

1 个答案:

答案 0 :(得分:0)

我希望您使用的是纯JavaScript,然后您可以使用Ajax将获取请求发送到click事件中的波纹管服务器。

var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      var response = this.responseText; // here you get the response
    } 
    // handle 500 error state here
  };
  xhttp.open("GET", "server_url/upvote", true);
  xhttp.send();

将数据保存到数据库后,将响应发送为波纹管

app.get("/upvote", function(req, res) {
  // save req data to a file
  if (savedToFile) {
    res.status(200).send("saved successfully");
  }
  else { // if got any error
    res.status(500).send("error");
  }
});