我正在尝试做这样的事情:
var query = 'select max(count) from ' + series +
' where value = \'' + search + '\'';
if (db.query(query, callback) !== undefined) {
return callback;
} else {
return callback = [{
name: series,
columns: ['time', 'max'],
points: [
[0, 0]
]
}];
}
我正在尝试验证该查询是否未定义或搜索的元素在 influxdb 中不存在,然后像元素存在一样武装回调,if 语句有效,但 else 返回一个空数组
db 参数是数据库配置的位置。
编辑:
感谢 Osukaa 的回答。我尝试你的建议,但没有回应。这是您所做更改的完整功能:
var counter = function (config, callback) {
var count = 'select max(count) from ' + series + ' where value = \'' + search + '\'';
db.query(count, function (err, res) {
if(err) return err;
if(res.length == 0){
return [{
name: series,
columns: ['time', 'max'],
points: [
[0, 0]
]
}];
}else{
return res;
}
});
};
console.log 显示一个空数组。
编辑2:
谢谢@Osukaa,不幸的是这不起作用,这是返回的错误:
调试:处理程序,错误 {"msec":395.7593630000483,"error":"找不到系列:items.type.updated"} 调试:内部,错误错误:找不到系列:items.type.updated
编辑 3:
我在尝试创建系列时解决了这个问题。当系列不存在时,显示此错误“错误找不到系列 [系列名称]”,因此我将此代码放入错误代码中:
db.query(qCount, function(err, res) {
if (err) {
if (err == 'Error: Couldn\'t find series: ' + name.series) {
res = newSeries;
return callback(null, res);
} else {
return callback(err);
}
} else {
if (res.length !== 0) {
return callback(null, res);
} else {
res = newSeries;
return callback(null, res);
}
}
});
当错误等于 'Error: Couldn\'t find series: ' + name.series 时,我传递值来创建它们。
谢谢。