Javascript 如何使用writeFileSync将JSON数据保存在文件中?
我正在从事一个家庭自动化项目(IoT),其中我的websocket服务器是MQTT代理的订户。它从微控制器获取温度和光强度数据。简而言之,数据保存为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
.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。如果您只是运行上面的脚本,您应该会看到您的数据。刚刚测试过。所以问题可能在其他地方。