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

时间:2018-11-21 13:35:31

标签: javascript json iot

我正在做一个家庭自动化项目(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的文件。

请帮助。

EDIT

我已经在这部分调用了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);
});

其余的代码与此类似。

1 个答案:

答案 0 :(得分:0)

这应该有效:

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

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

writeData();