gpt4 book ai didi

mysql - NodeJS MySQL 查询结果到 [object Object]

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:57 25 4
gpt4 key购买 nike

我有这个代码:

var sql1 = "SELECT DISTINCT sensor_id, timestamp FROM Displacement_Record WHERE wave_type = 1 ORDER BY timestamp ASC";
var sql2 = "SELECT timestamp FROM Displacement_Record WHERE wave_type = 0 AND sensor_id = ?";
var sql3 = "SELECT latitude, longitude FROM Sensor_Record WHERE sensor_id = ?";
var pTime, sTime;

db.getConnection((err, conn) => {
if (err) throw err;
conn.query(sql1, function (err, res, fields) {
if (err) throw err;
for (i = 0; i < res.length; i++) {
var sensor = res[i].sensor_id;
console.log(sensor);
var pTime = res[i].timestamp;
sql2 = mysql.format(sql2, sensor);
conn.query(sql2, function (err, results, fields) {
if (err) throw err;
var sTime = res[i].timestamp; //timestamp error
console.log("results = " + results + " " + results.length);
conn.query(sql3, function (err, res, fields) {
if (err) throw err;
var location = [res[i].latitude, res[i].longitude];
console.log("Data = " + sensor + " " + pTime + " " + sTime + " " + latitude + " " + longitude);
});
});
}
});
conn.release();
});

第一个查询正确地给我结果。我能够获取并存储我需要的数据。但是,第二个和第三个查询结果为:

results = [object Object],[object Object],[object Object] 

并抛出:

    throw err; // Rethrow non-MySQL errors
^
TypeError: Cannot read property 'timestamp' of undefined

我试着看看是什么原因造成的。只有当我删除查询中的条件时,我才能得到正确的结果。但是,我当然需要条件。而且我还想知道当我能够在第一个查询中获得结果时,它为什么会在以下查询中抛出错误,有条件和所有。

希望有人能帮帮我,谢谢!

最佳答案

这个问题其实算不上真正的问题。当您在任何 console.log 中有 [object Object] 时,这意味着您想要在字符串中打印的内容无法打印为 字符串。

如果你真的想打印结果,你应该做什么而不是

conn.query(sql2, function (err, results, fields) {
if (err) throw err;
console.log("results = " + results + " " + results.length); // HERE
conn.query(sql3, function (err, res, fields) {
if (err) throw err;
var location = [res[i].latitude, res[i].longitude];
console.log("Data = " + sensor + " " + pTime + " " + sTime + " " + latitude + " " + longitude); // HERE
});
});

实际上是:

conn.query(sql2, function (err, results, fields) {
if (err) throw err;
console.log("results ="); // HERE
console.log({ results }, results.length); // HERE
conn.query(sql3, function (err, res, fields) {
if (err) throw err;
var location = [res[i].latitude, res[i].longitude];
console.log("Data = "); // HERE
console.log({ sensor, pTime, sTime, latitude, longitude }); // HERE
});
});

参见符号 console.log({ variable });这允许您记录变量内容,键显示在左侧,就像您在当前 console.logs 中实际想要做的那样。

示例:


const results = [1, 2, 3, 4];
const randomString = 'Some content in here';

console.log({ results, randomString});

这输出: enter image description here

关于mysql - NodeJS MySQL 查询结果到 [object Object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55162681/

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