gpt4 book ai didi

node.js - 如果数组中不存在新记录,则尝试添加新记录

转载 作者:行者123 更新时间:2023-12-03 22:29:28 29 4
gpt4 key购买 nike

我正在编写一个基于 nodejs 的脚本来从树莓派获取温度读数,并且在将传感器添加到数据库的 Sequelize 部分遇到了一些麻烦。

ds18x20 库使用 sensor.list 将所有传感器连接到 raspi。我需要遍历这个列表函数的结果,如果数据库中不存在sensorId,我需要添加它。

到目前为止,我有以下代码,它检索传感器列表,遍历它们并在数据库中查找它们。

sensor.list(function(e, sensors){
logger.debug("Sensors Found:");
logger.debug(sensors);
for(var i=0; i < sensors.length;i++){
db.Sensor.find({
where: { sensorId: sensors[i] }
}).success(function(s){
if (!s){
##sensors[i] is undefined here
logger.debug('Adding Sensor '+sensors[i]+' To the database as it doesn\'t exist!');
db.Sensor.create({
sensorId: sensors[i],
name: sensors[i]
});
}else{
Sensors.push(s);
}
});
}
});

最佳答案

问题是,当成功回调开始触发时,我将拥有 sensors.length 的值。

你可以像

sensor.list(function(e, sensors){

/* This function returns the function which should
execute after callback with presnt i bound to it */
function GnBindCb(i) {

return function(s) {
if (!s){
##sensors[i] is undefined here
logger.debug('Adding Sensor '+sensors[i]+' To the database as it doesn\'t exist!');
db.Sensor.create({
sensorId: sensors[i],
name: sensors[i]
});
}else{
Sensors.push(s);
}
};

}


logger.debug("Sensors Found:");
logger.debug(sensors);
for(var i=0; i < sensors.length;i++){
db.Sensor.find({
where: { sensorId: sensors[i] }
}).success(GnBindCb(i)());
}


});


有关此问题的更多输入,您可以引用 this post on Stackoverflow

关于node.js - 如果数组中不存在新记录,则尝试添加新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26133894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com