Я просто изучаю node.js, но у меня здесь небольшая проблема, я хочу использовать переменные данные из другой функции, в этом коде
var HOST = '162.144.36.40'
var PORT = 6969
net.createServer(function(sock) {
console.log('TERKONEKSI: ' + sock.remoteAddress + ':' + sock.remotePort);
sock.on('data', function(data) {
console.log('DATA: ' + sock.remoteAddress + ':' + data);
sock.write('Anda mengirim "' + data + '"');
var strData = data.toString();
var arrData = strData.split(',');
var sensorData = {
'Nama_Sumur': arrData[0],
'ID': arrData[1],
'Temperatur': arrData[2],
'Pressure': arrData[3],
'Flowmeter': arrData[4],
'Timestamp': arrData[5]
};
});
sock.on('close', function(data) {
console.log('CLOSED ' + sock.remoteAddress + ':' + sock.remotePort);
})
}).listen(PORT, HOST);
console.log('Server sekarang listening di: ' + HOST + ':' + PORT);
var file = 'telemetry-data.json'
var obj = {
"ID": 10,
"Temperature": 27,
"Pressure": 0.01,
"Flow": 0.23,
"Timestamp": 150595442
}
jsonfile.writeFile(file, obj, { flag: 'a' }, function(err) { console.error(err) })
Моя цель - записать в файл JSON, используя переменную arrData в указанной выше функции. Это базовые знания, которые я думаю, возможно, просто некоторые подсказки, чтобы решить эту проблему.
В JavaScript вы можете использовать JSON.stringify для преобразования массива или значений в форматированную строку JSON.
JSON.stringify(sensorData);
fs.writeFile
позволит вам записать файл. Но вы должны сделать это в том же контексте, где у вас есть дата. Не за пределами обратного вызова.