Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用writeFileSync将JSON数据保存在文件中?_Javascript_Json_Iot - Fatal编程技术网

Javascript 如何使用writeFileSync将JSON数据保存在文件中?

Javascript 如何使用writeFileSync将JSON数据保存在文件中?,javascript,json,iot,Javascript,Json,Iot,我正在从事一个家庭自动化项目(IoT),其中我的websocket服务器是MQTT代理的订户。它从微控制器获取温度和光强度数据。简而言之,数据保存为JSON数据,然后我必须将所有接收数据的日志保存在一个文件中。我使用了.writeFileSync(),但它只产生了[object object],我必须手动编辑data.JSON才能运行我的程序,因为如果我不这样做,它会给出一个错误 以下是脚本: var config = require('./data.json'); function writ

我正在从事一个家庭自动化项目(IoT),其中我的websocket服务器是MQTT代理的订户。它从微控制器获取温度和光强度数据。简而言之,数据保存为JSON数据,然后我必须将所有接收数据的日志保存在一个文件中。我使用了
.writeFileSync()
,但它只产生了
[object object]
,我必须手动编辑data.JSON才能运行我的程序,因为如果我不这样做,它会给出一个错误

以下是脚本:

var config = require('./data.json');

function writeData() {
    fs.writeFileSync('data.json', config);
}
然后我试着把它改成

var config = require('./data.json');
let data2 = JSON.stringify(config);
function writeData() {
   fs.writeFileSync('data-2.json', data2);
}
但是我找不到名为
data-2.json
的文件

请帮忙

编辑

我在这一部分调用了writeData()函数:

    s.on('dev:on', function (id) {
    if (id == 'lamp1') {
        config.lamp1 = true;
    } else if (id == 'fan1') {
        config.fan1 = true;
    }
    client.publish(id, "true");
    writeData();
    console.log('Device ON RECEIVED for ' + id);
});
下面的其余代码与此类似。

这应该可以工作:

const fs = require('fs');
let config = require('./data.json');

function writeData() {
    fs.writeFileSync('data-2.json', JSON.stringify(config));
}

writeData();

不确定
writeFileSync
如何工作,但是
data-2.json
应该与脚本本身位于同一文件夹中。我相信websocket服务器进程也应该具有对该文件夹的
write
权限。您将
writeData
定义为一个函数,但忘了调用它。@Eimantas谢谢。我尝试了Sebastian建议的脚本,但在文件夹中找不到data-2.json…谢谢。我已将我的程序编辑为此,但我仍然无法在与我的脚本相同的文件夹中找到data-2.json。如果您只是运行上面的脚本,您应该会看到您的数据。刚刚测试过。所以问题可能在其他地方。