在nodejs中将JSON数据从前端写入后端

我有ButtonClick.js和TakeData.js文件。 我在下面定义了我的json数据在TakeData.js

var dataObj = {}; var locationsObj = "locations"; dataObj[locationsObj] = {}; dataObj[locationsObj].source = []; dataObj[locationsObj].target = []; 

当我点击ButtonClick.js中的button和代码片段如下

 button() .container(g2) .text(text2) .count(1) .cb(function() { console.log(dataObj[locationsObj].source[0]); console.log(dataObj[locationsObj].source[1]); console.log(dataObj[locationsObj].target[0]); console.log(dataObj[locationsObj].target[1]); console.log("SaveFile"); })(); 

我想发送json数据到nodejs文件写入函数中,如下所示。

 fs.writeFile('sample.txt', [need to insert my JSON], function(err) { if(err) return console.log(err); console.log('Hello JSON > sample.txt'); }); 

我怎样才能做到这一点? 还有另一种有效的方法吗?

您的后端需要有一个HTTP服务器监听您的前端可访问的某个端口。 然后,你的前端需要向你的后端发出一个AJAX请求(很可能是一个POST请求),并在请求体内发送所需的数据。

现在,您的后端需要处理请求,获取数据并将其写入文件或做任何你想做的事情。

需要注意的是:

  • 如果您使用Express,请使用body-parser
  • 记得关于CORS

如果您在后端使用更高级别的框架(如Express,Hapi,Restify,LoopBack等)而不是Node中的低级http模块,则更容易。

如果你在前端如jQuery,Angular,React,Aurelia,Ember等上使用一个框架,那也更容易。

第一步是在您的服务器上设置RESTful POST操作(HTTP POST) 。 这是有时称为AJAX调用的典型服务机制。 将服务器设置为通过POST接收string后,可以序列化客户端上的对象,并反序列化(重新构build)服务器端上的对象。

要序列化,可以在客户端使用stringify。 一个简单的networkingsearch“stringify”将向您展示不同的方式,以独立于浏览器的,向后兼容的方式使用stringify。

 stringify(obj) 

在服务器端,node.js有一个全局的JSON对象。 使用parse从string中重build一个或多个对象。 其他主要的语言现在有类似的parsing器方法。 1

 JSON.parse(strJSON) 

要开始,你可以用一个简单的对象来testing机制。 然后,您可以聚合JSON数组或关联数组中的对象,并在一个POST中一次性发送它们。


[1]有一些框架封装了这个过程,但是最初不要使用它们,这样可以清楚地了解HTTP协议上的RESTful POST的机制。 在提交HTML表单时,浏览器是关键所在,而RESTful操作是当今IT领域的关键通信元素。