如何将JSON数组写入node.js中的文件并再次请求客户端

时间:2017-11-23 20:13:14

标签: javascript node.js ajax

我正在尝试创建一个具有保存和加载功能的拖放表。我正在使用REDIPS.drag中的代码。

使用REDIPS保存功能时,表格内容将从客户端返回到控制台并发出如下警告:

[["d2",2,2,"blue","A1"],["d1",4,5,"blue","A2"],["d3",3,2,"blue","A3"],["d4",1,4,"blue","A4"]].

我尝试了几种不同的方法将数据发送到节点并将其写入文件。

使用这种方法:

的script.js

$.ajax({
    type: "POST",
    url:"post6/json",
    data: {table_content},
    dataType:'json',
    contentType: "application/x-www-form-urlencoded"
});

App.js

var testjson = req.body;
var tablestringify2 = JSON.stringify(testjson); 
fs.writeFile('views/test.json', tablestringify2,'utf8', function (err) {
    if (err) {
        // append failed
    } else {
        // done
    }
})

保存到文件的数据是:

{"table_content":"[[\"ns1.8b\",3,1,\"\",\"ns1.8b\"],[\"ns3.1\",4,2,\"\",\"ns3.1\"]]"}

使用这种方法:

的script.js

$.ajax({
    type: "POST",
    url:"post6/json",
    data: table_content,
    dataType:'json',
});

数据保存到文件中:

{"[":{"\"ns1.8b\",3,0,\"\",\"ns1.8b\"":{"\"ns3.1\",3,2,\"\",\"ns3.1\"":""}}}

当我使用GET时,我会解析返回的数据;

{ table_content: '[["ns1.8b",3,1,"","ns1.8b"],["ns3.1",5,3,"","ns3.1"]]' }

{[:{"ns1.8b",3,0,"","ns1.8b":{"ns3.1",3,2,"","ns3.1":""}}}

使用REDIPS加载功能无法将表单加载回表中。

有什么办法可以用以下格式获取数据;

[["ns1.8b",3,0,"","ns1.8b"],["ns3.1",3,2,"","ns3.1"]]

...在客户端返回?

或者可以将它保存到文件中吗?

1 个答案:

答案 0 :(得分:0)

在客户端执行stringify:

$.ajax({
    type: "POST",
    url:"post6/json",
    data: {table_content: JSON.stringify(table_content)},
    dataType:'json',
});

在服务器端,您应该能够访问req.body.table_content,这将是数组的(JSON)字符串表示。