【发布时间】:2020-12-26 06:56:36
【问题描述】:
我在使用 Node.JS MySQL 时遇到了一个新的非常奇怪的错误。即使我的代码中没有记录它的行,我似乎也在控制台中记录结果;同样,当我记录结果时,它会记录一个与看似自动记录的结果不同的结果,以及我使用 PHPMyAdmin 时出现的结果。
这是我的代码(我已将其放入自己的文件中,以确保在我的其他文件中其他地方没有触发 console.log 的事件):
const config = require("./config.json");
const colors = require('colors');
var mysql = require('mysql');
function get_datetime() {
let date_ob = new Date();
// current date
// adjust 0 before single digit date
let date = ("0" + date_ob.getDate()).slice(-2);
// current month
let month = ("0" + (date_ob.getMonth() + 1)).slice(-2);
// current year
let year = date_ob.getFullYear();
// current hours
let hours = date_ob.getHours();
// current minutes
let minutes = date_ob.getMinutes();
// current seconds
let seconds = date_ob.getSeconds();
// prints date & time in YYYY-MM-DD HH:MM:SS format
var dateTimeOfMessage = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds;
return dateTimeOfMessage;
}
var currentdate = get_datetime();
// Check for expired users by taking current date from database for all users where date is within a reasonable range. (e.g. WHERE date = 2 days lower than get_datetime().)
// Remove users who have had the role for over 2 days unless they bought it.
var con = mysql.createConnection({
host: config.database.host,
user: config.database.user,
password: config.database.password,
database: config.database.name
});
con.connect(function(err) {
if (err) throw err;
var sql = "SELECT userID FROM premium_trials WHERE DATEDIFF('" + currentdate + "', datereceived) >= 2 AND boughtPremium = 0;";
console.log(sql);
con.query(sql, function(result, err) {
if (err) console.log(err);
con.end();
if (result == null || result == "") {
console.log("null value".yellow);
console.log(result + " --- Result log on line 53");
} else {
console.log("Still working".green);
for (i = 0; i < result.length; i++) {
console.log(result[i].userID);
}
}
});
});
这是我的控制台输出的文本版本:
SELECT userID FROM premium_trials WHERE DATEDIFF('2020-09-07 22:25:43', datereceived) >= 2 AND boughtPremium = 0;
[ RowDataPacket { userID: '216324181783085056' } ]
null value
null --- Result log on line 53
我还附上了 PHPMyAdmin 输出的图像,显示它是正确的。
【问题讨论】:
-
"null value".yellow是什么? -
它只是使文本在控制台中显示为黄色,如屏幕截图所示。它来自颜色模块。
标签: javascript mysql node.js discord.js