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

时间:2017-01-02 18:09:02

标签: javascript node.js file

我有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');
});

我该怎么做?还有另一种有效的方法吗?

2 个答案:

答案 0 :(得分:1)

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

现在,您的后端需要处理请求,获取数据并将其写入文件或使用它执行任何操作。

要记住的事情:

  • 如果您使用Express
  • ,请使用body-parser
  • 记住CORS

如果在后端使用更高级别的框架(如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世界中的关键通信元素。