TypeError: Cannot read properties of null (reading '_id')
TypeError: Cannot read properties of null (reading '_id')
所以我试图从 mongodb 检索文档,但后来出现了这个错误
我不知道它是数据库错误还是代码错误所以有帮助吗?
Encountered error on event listener "guildMemberAdd" for event "guildMemberAdd" at path "D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js" TypeError: Cannot read properties of null (reading '_id')
at GuildMemberAddListener.<anonymous> (D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js:34:36)
at Generator.next (<anonymous>)
at fulfilled (D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js:9:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
guildMemberAdd.ts
import { Command } from "@sapphire/framework";
import { Message } from "discord.js";
import mongoose from "mongoose";
import { victim } from "../schema/victim";
export class Victim extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, {
...options,
name: 'victim',
description: 'kicks the victim without mercy'
})
};
public async messageRun(message: Message) {
await mongoose.connect(process.env.Mongoose!);
const victimUser = message.mentions.members!.first();
const find = await victim.findOne({ _id: victimUser?.id});
if (find) {
return message.reply('brother that guy is already in our hitlist')
};
try {
await new victim({
_id: victimUser?.id,
guildId: message.guild?.id
}).save();
} catch(e) {
console.error(e)
} finally {
mongoose.connection.close()
}
}
}
在这行代码 await victim.findOne({ _id: victimUser?.id});
中,victimUser?.id
似乎为您提供了一个 null
值。然后 Mongoose 似乎恐慌地说 - 你要我找到一个 _id
为空的文档。因此错误更多的是 - 为什么你得到一个 null
for victimUser?.id。检查传递给函数 messageRun
的数据是否首先具有该字段 id
。
所以我试图从 mongodb 检索文档,但后来出现了这个错误 我不知道它是数据库错误还是代码错误所以有帮助吗?
Encountered error on event listener "guildMemberAdd" for event "guildMemberAdd" at path "D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js" TypeError: Cannot read properties of null (reading '_id')
at GuildMemberAddListener.<anonymous> (D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js:34:36)
at Generator.next (<anonymous>)
at fulfilled (D:\Project\Troll Kick Bot\bin\listeners\guildMemberAdd.js:9:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
guildMemberAdd.ts
import { Command } from "@sapphire/framework";
import { Message } from "discord.js";
import mongoose from "mongoose";
import { victim } from "../schema/victim";
export class Victim extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, {
...options,
name: 'victim',
description: 'kicks the victim without mercy'
})
};
public async messageRun(message: Message) {
await mongoose.connect(process.env.Mongoose!);
const victimUser = message.mentions.members!.first();
const find = await victim.findOne({ _id: victimUser?.id});
if (find) {
return message.reply('brother that guy is already in our hitlist')
};
try {
await new victim({
_id: victimUser?.id,
guildId: message.guild?.id
}).save();
} catch(e) {
console.error(e)
} finally {
mongoose.connection.close()
}
}
}
在这行代码 await victim.findOne({ _id: victimUser?.id});
中,victimUser?.id
似乎为您提供了一个 null
值。然后 Mongoose 似乎恐慌地说 - 你要我找到一个 _id
为空的文档。因此错误更多的是 - 为什么你得到一个 null
for victimUser?.id。检查传递给函数 messageRun
的数据是否首先具有该字段 id
。