const User = require('./models/user')
module.exports = new class Users {
async get(token) {
return await User.find({"activeToken": token}).exec();
}
}
Моя функция поиска всегда возвращает «Не удалось найти то, что вы искали», я пробовал users.activateToken, User.activateToken и просто активироватьToken, и он все еще не работает.
{
"_id": "text",
"activeToken": "abcdefg",
"activated": "false",
"email": "email",
"__v": 0
}
Выданная ошибка просто "нулевая"
Функция, которую я пытаюсь запустить с помощью:
bot.on('message', async (message) => {
const user = await users.get(message.content);
if (message.content == user.activeToken && !user.activated && message.channel.type == 'dm') {
user.discord_id = message.member.id;
const role = message.guild.roles.cache.get(config.member_role);
console.info("Test");
if (role){
try {
console.info("You Won");
message.member.roles.add(role);
message.author.send(replyText);
user.activated = true;
user.activeToken = "";
}
catch(err) {
console.info(err);
console.info("Error Occured");
}
}
}
else {
console.info(user);
}
})
Эта строка кода
console.info(user);
возвращает (0) [] с "user.activeToken"
но возвращает (1) [модель] с обычным «activeToken»
Схема пользователя:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//user schema
var UserSchema = new Schema({
_id: String,
discord_id: String,
email: String,
activeToken: {
type: String,
default: "",
},
activated: {
type: String,
default: false
},
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
Он всегда возвращает это сообщение, потому что это то, что вы регистрируете, когда нет ошибки!
if (err) throw err;
console.info("Couldn't find what you were looking for");
в случае ошибки вы перебрасываете его, поэтому console.info не будет выполнен.
Я предполагаю, что вы используете mongoose
.
функция должна быть написана так
async get(token) {
return await User.findOne({"activeToken": token}).exec()
}
И вы должны использовать findOne
, чтобы получить один объект.
обратитесь к этому для полного описания: https://mongoosejs.com/docs/promises.html#встроенные-промисы
можете ли вы поделиться схемой вашего пользователя
Я только что обновил свой вопрос со всем соответствующим кодом
Я на самом деле использую mongodb
хорошо, вы используете mongodb, но пакет mongoose const mongoose = require('mongoose');
Спасибо за помощь, которая многое прояснила; однако он все еще не работает даже с обновленным кодом. (отредактированный вопрос)