我有ButtonClick.js和TakeData.js文件。我在TakeData.js中定义了我的json数据,如下所示
var dataObj = {};
var locationsObj = "locations";
dataObj[locationsObj] = {};
dataObj[locationsObj].source = [];
dataObj[locationsObj].target = [];
当我点击ButtonClick.js中的按钮和下面的代码片段
时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');
});
我该怎么做?还有另一种有效的方法吗?
答案 0 :(得分:1)
您的后端需要让HTTP服务器侦听您的前端可以访问的某个端口。然后你的前端需要向你的后端发出一个AJAX请求(很可能是一个POST请求),并在请求体中发送所需的数据。
现在,您的后端需要处理请求,获取数据并将其写入文件或使用它执行任何操作。
要记住的事情:
如果在后端使用更高级别的框架(如Express,Hapi,Restify,LoopBack等)而不是Node中的低级http
模块,则会更容易。
如果你在前端使用一个框架,如jQuery,Angular,React,Aurelia,Ember等,也会更容易。
答案 1 :(得分:0)
第一步是设置RESTful POST operation (an HTTP POST) on your server。这是有时称为AJAX调用的典型服务机制。一旦您将服务器设置为通过POST接收字符串,您就可以在客户端序列化对象并反序列化(重新构建)服务器端的对象。
要序列化,您可以在客户端使用stringify。一个简单的网络搜索" stringify"将向您展示以独立于浏览器,向后兼容的方式使用stringify的不同方法。
stringify(obj)
在服务器端,node.js有一个全局JSON对象。使用parse重构字符串中的一个或多个对象。其他主要语言现在有类似的解析器方法。 1
JSON.parse(strJSON)
首先,您可以使用一个简单的对象来测试机制。然后,您可以聚合JSON数组或关联数组中的对象,并在一个POST中一次性发送它们。
[1]有一些框架可以封装这个过程,但是最初不使用它们对你来说很有价值,这样你就可以清楚地了解RESTful POST在HTTP协议上的机制。当您提交HTML表单时,浏览器会执行这一操作,而RESTful操作是当今IT世界中的关键通信元素。