Reputation: 41
I use sqlite for database in my javascript code and no matter what i try, it's always keeps this error in there:
sql.get(`SELECT * FROM users WHERE userId ="${member.user.id}"`).then(row => {
if (!row) sql.run("INSERT INTO users (userId, level, exp) VALUES (?, ?, ?)", [member.user.id, 1, 0]);
var profile = new Discord.RichEmbed()
.setColor(0x0000FF)
.setTitle(member.user.username + "'s profile")
.setThumbnail(member.user.avatarURL)
.setDescription("Status: " + member.user.presence.status)
.addField("Stats","**Level** " + row.level+"\n"+row.exp+"/"+row.level*10)
msg.reply("here is "+member.user.username+"'s profile:",{embed:profile});
})
if you didn't underatand some of it like 'msg.reply' it's because those are commands for my discord bot.
Upvotes: 1
Views: 928
Reputation: 1505
In your code you insert the row if it is not present but work on it always. If it is not defined then you should insert it and then fetch the row again and now work on it.
try this,
sql.get(`SELECT * FROM users WHERE userId ="${member.user.id}"`).then(row => {
if(row) {
reply(row, member);
} else {
sql.run("INSERT INTO users (userId, level, exp) VALUES (?, ?, ?)", [member.user.id, 1, 0]).then(row => {
reply(row, member);
})
}
})
const reply = (row, member) => {
var profile = new Discord.RichEmbed()
.setColor(0x0000FF)
.setTitle(member.user.username + "'s profile")
.setThumbnail(member.user.avatarURL)
.setDescription("Status: " + member.user.presence.status)
.addField("Stats","**Level** " + row.level+"\n"+row.exp+"/"+row.level*10)
msg.reply("here is "+member.user.username+"'s profile:",{embed:profile});
}
Upvotes: 0
Reputation: 7344
It looks like your object row is undefined.
Wrap all your code inside an else curly braces:
sql.get(`SELECT * FROM users WHERE userId ="${member.user.id}"`).then(row => {
if (!row)
sql.run("INSERT INTO users (userId, level, exp) VALUES (?, ?, ?)", [member.user.id, 1, 0]);
else {
var profile = new Discord.RichEmbed()
.setColor(0x0000FF)
.setTitle(member.user.username + "'s profile")
.setThumbnail(member.user.avatarURL)
.setDescription("Status: " + member.user.presence.status)
.addField("Stats","**Level** " + row.level+"\n"+row.exp+"/"+row.level*10)
msg.reply("here is "+member.user.username+"'s profile:",{embed:profile});
}
})
Upvotes: 3