需要在服务器中发送数据和访问数据的帮助.我想使用JavaScript(nodejs)来实现这一点

Need help sending data and accessing it in the server. I want to do this using JavaScript(nodejs)

本文关键字:数据 JavaScript nodejs 这一点 实现 帮助 服务器 访问      更新时间:2023-09-26

我在前端-后端交互方面遇到了问题。我相对确信我正在发送数据,但之后我无法访问数据。最近,我使用了这个代码模板(来自mozilla的帮助页面的链接)来发送数据。JavaScript:

function sendData(data) {
      var XHR = new XMLHttpRequest();
      var urlEncodedData = "";
  // We turn the data object into a URL encoded string
  for(name in data) {
    urlEncodedData += name + "=" + data[name] + "&";
  }
  // We remove the last "&" character
  urlEncodedData = urlEncodedData.slice(0, -1);
  // We URLEncode the string
  urlEncodedData = encodeURIComponent(urlEncodedData);
  // encodeURIComponent encode a little to much things
  // to properly handle HTTP POST requests.
  urlEncodedData = urlEncodedData.replace('%20','+').replace('%3D','=');
  // We define what will happen if the data are successfully sent
  XHR.addEventListener('load', function(event) {
    alert('Yeah! Data sent and response loaded.');
  });
  // We define what will happen in case of error
  XHR.addEventListener('error', function(event) {
    alert('Oups! Something goes wrong.');
  });
  // We setup our request
  XHR.open('POST', 'http://ucommbieber.unl.edu/CORS/cors.php');
  // We add the required HTTP header to handle a form data POST request
  XHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  XHR.setRequestHeader('Content-Length', urlEncodedData.length);
  // And finally, We send our data.
  XHR.send(urlEncodedData);
}

HTML:

<button type="button" onclick="sendData({test:'ok'})">Click Me!</button>

我的问题是:是否有更好的发送数据的方式(更适合节点)?以及如何访问服务器端的数据?

有更好的发送数据的方法吗

这是一个相当主观的问题,但这里有一个替代方案:您可以创建带有隐藏元素的表单,并使用FormData()将它们发送到服务器。这也允许您轻松处理文件:

<form onsubmit="xhrsend(event,this)" method="POST" enctype="multipart/form-data" action="http://ucommbieber.unl.edu/CORS/cors.php">
  <input type="hidden" name="myName" value="myValue"/>
  <input type="file" name="myFile"/>
  <input type="submit" value="Send"/>
  ...
</form>

使用通用JS来XHR发送任何形式的

function xhrsend(ev,frm) {
  ev.preventDefault(); // prevent submiting form
  var XHR = new XMLHttpRequest();
  XHR.addEventListener(...); // whatever
  XHR.open('POST', frm.action, true);
  XHR.send(new FormData(frm)); // send form data
  this.reset(); // optional: reset form values
}

如何访问服务器端的数据

这个问题将指导您如何在node.js服务器上处理POST数据。

注意:如果您使用node.js,我建议您看看websocket——它可以做的不仅仅是XHR(比如从服务器向客户端发送消息)。