filter [0] .ID未定义

时间:2018-02-20 03:27:44

标签: javascript bots discord

我正在制作Discord Bot在新用户加入时添加数据库条目。为了避免重复的条目,我正在检查数据库行ID是否已经包含成员ID。我的问题是,如果该成员不在数据库中,它将以未定义的形式返回。

var userID = member.id.toString();
var UserName = member.user.username.toString();
// var NickName = member.nickname.toString();
var DateJoined = new Date();
    con.query("SELECT ID FROM listAllUsers", function (err, selectResult, fields) {
        var filter = selectResult.filter(m => m.ID === userID);
        console.log(filter[0].ID)
        if(filter[0].ID == userID) {
            console.log(`That user all ready exists in the database.`)
        } else {
            var sql = `INSERT INTO listAllUsers (ID, UserName, NickName, DateJoined) VALUES ('${ID}', '${UserName}', 'none', '${DateJoined}')`;
            con.query(sql, function (err, result) {
                if (err) throw err;
                console.log(`User: ${UserName} -- ${ID} has joined the server. Added to the Database`);
            });
        }
    });

var filter = selectResult.filter(m => m.ID === userID); 这将检查ID是否等于数据库中的任何ID。但这也是我的问题。因为如果这回来是空的,它将使这个: console.log(filter[0].ID)未定义。实际上.ID位未定义。

1 个答案:

答案 0 :(得分:0)

如果您有一个条目,那么您已经知道该ID存在....

if (filter.length > 0) { 
  // you have a user with the id
}

但是,仅仅查询用户ID而不是返回所有人会更有意义吗? SELECT ID FROM listAllUsers WHERE ID=userID