Reputation: 67
How to find out if the .find
returns something or not? I'm trying to make it so if it returns nothing, it saves a schema with an auth token (check 2), and if it returns something it does check 3. But everytime, even when I do not have a schema with my discordId
in the database it logs check 3
and check 1
but never check 2
.
let discordId = message.author.id;
const discordIdCheck = authSchema.find({
discordId: discordId,
});
console.log('check 1');
if (discordIdCheck.count() < 1) {
function getAuthToken() {
var letters =
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!.#&';
var authTokenStart = '';
for (var i = 0; i < 12; i++) {
authTokenStart += letters[Math.floor(Math.random() * letters.length)];
}
return authTokenStart;
}
const authToken = getAuthToken();
const auth = {
discordId: discordId,
authToken: authToken,
};
console.log('check 2');
message.author.send('Okay, your auth token is: ' + authToken);
console.log(authToken);
new authSchema(auth).save();
} else {
message.channel.send(
'You already have an auth token. use !token to make me send it to you in your direct messages',
);
console.log('Check 3 ');
}
Upvotes: 1
Views: 531
Reputation: 583
You can use the length
value to check the length of the find()
result like:
const discordIdCheck = await authSchema.find({
discordId: discordId,
});
if(discordIdCheck.length <= 0) console.log("0 found")
Upvotes: 1