我有一个应用程序,我从串口以JSON格式获取数据,我想获取这些数据并将其放在一个解析对象中。 我想在数据库中为串口中收到的每个新JSON对象添加一个新的行项。
当我尝试实现它时,会创建对象并且数据会进入数据库,但是它会保持覆盖,而我剩下的就是一行包含最新数据。
我的代码如下(请注意它在带有Parse npm模块的Node.js中):
var Parse = require('parse').Parse;
Parse.initialize("key hidden", "key hidden");
var Parent = Parse.Object.extend("Parent");
var parent = new Parent();
var serialport = require('serialport').SerialPort;
var serialport = new serialport('COM5', {
//parser:serialport.parsers.readline("\r\n")
//parser:serialport.parsers.readline("\r\n"),
});
serialport.on('open', function(){
console.log('Port is open');
serialport.on('data', function(data){
//console.log('Connected to ', url);
var data1 = JSON.parse(data);
var testdata = {Temp:data1.Temp};
parent.save(testdata).then(function(object) {
console.log('inserted')
});
});
});
我希望有人可以帮我解决这个问题。
提前致谢!
尼基尔
答案 0 :(得分:0)
将var parent = new Parent();
移至serialport.on
函数,以便在每次保存之前重新初始化。
现在,由于parent
是一个仅初始化一次的全局变量,因此每次保存时,您只需使用新数据保存旧对象。如果在保存之前初始化新对象,则将在数据库中创建新记录。