const User = require('./models/user')
module.exports = new class Users {
async get(token) {
return await User.find({"activeToken": token}).exec();
}
}
我的find函数总是返回"找不到你要找的东西";,我试过users.activateToken、User.activateToken和activateToken,但仍然不起作用。
{
"_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.log("Test");
if(role){
try {
console.log("You Won");
message.member.roles.add(role);
message.author.send(replyText);
user.activated = true;
user.activeToken = "";
}
catch(err) {
console.log(err);
console.log("Error Occured");
}
}
}
else {
console.log(user);
}
})
这行代码
console.log(user);
return(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.log("Couldn't find what you were looking for");
如果出现错误,您将重新抛出它,因此不会执行console.log。
我认为您使用的是mongoose
。
函数应该像一样编写
async get(token) {
return await User.findOne({"activeToken": token}).exec()
}
您应该使用findOne
来获得单个对象。
请参阅以获取完整描述:https://mongoosejs.com/docs/promises.html#built-承诺