Mongoose报错TypeError: schema路径guildId.type值为undefined如何解决
问题原因
你的报错来自GuildConfig Schema中错误的字段类型声明:mongoose.SchemaType是Mongoose所有Schema类型的抽象基类,不存在String静态属性,你写的mongoose.SchemaType.String取值为undefined,导致Mongoose解析Schema时无法识别合法的字段类型,触发了对应报错。
正确的字符串类型声明有两种可选写法:
- 直接使用JS原生字符串构造函数
String(更简洁,为常用写法) - 引用Mongoose封装的类型:
mongoose.Schema.Types.String(注意是复数Types,不是单数SchemaType)
修复后的Schema代码
const mongoose = require('mongoose'); const GuildConfigSchema = new mongoose.Schema({ guildId: { type: String, required: true, unique: true, }, prefix: { type: String, required: true, default: 'b!', }, defaultRole: { type: String, required: false, }, memberLogChannel: { type: String, required: false, }, }); module.exports = mongoose.model('GuildConfig', GuildConfigSchema);
你的guildCreate事件代码逻辑没有问题,修复Schema定义后即可正常运行。
内容的提问来源于stack exchange,提问作者Solid Coder
相关产品推荐
相关产品推荐

