使用导出的 mongoose.model() 时无法读取未定义(创建)的属性
While using an exported mongoose.model() cannot read properties of undefined (create)
正在使用 discord.js 创建一个机器人。通过 mongoose 连接到 mongoDB 并尝试添加测试数据时,我将 运行 添加到此错误中:TypeError: Cannot read properties of undefined (reading 'create')
const {MemberSchema} = require('../schemas/member-schema');
module.exports = {
name: 'interactionCreate',
async execute(interaction) {
if (!interaction.isButton()) return;
console.log(`${interaction.user.tag} in #${interaction.channel.name} triggered a button interaction.`);
const author = await interaction.member.id;
const guild = await interaction.guildId;
const points = 100;
let member = {
userID: `${guild}`,
guildID: `${author}`,
points: points
}
try {
let newMember = await MemberSchema.create(member);
await newMember.save();
} catch (e) {
console.log(`error creating member ${e}`);
}
},
};
导出的成员架构:
const mongoose = require('mongoose');
const MemberSchema = new mongoose.Schema({
userID: mongoose.SchemaTypes.String,
guildID: mongoose.SchemaTypes.String,
points: Number
});
module.exports = mongoose.model('Member', MemberSchema);
我尝试了将数据添加到数据库的不同方法,但唯一有效的测试是在同一代码块中同时声明 memberSchema 和新成员。对正确导入/导出 memberSchema 模型有什么建议吗?
您的导入语句不正确。你应该像这样导入
const Member = require('../schemas/member-schema');
然后在路由中,使用
await Member.create(member);
正在使用 discord.js 创建一个机器人。通过 mongoose 连接到 mongoDB 并尝试添加测试数据时,我将 运行 添加到此错误中:TypeError: Cannot read properties of undefined (reading 'create')
const {MemberSchema} = require('../schemas/member-schema');
module.exports = {
name: 'interactionCreate',
async execute(interaction) {
if (!interaction.isButton()) return;
console.log(`${interaction.user.tag} in #${interaction.channel.name} triggered a button interaction.`);
const author = await interaction.member.id;
const guild = await interaction.guildId;
const points = 100;
let member = {
userID: `${guild}`,
guildID: `${author}`,
points: points
}
try {
let newMember = await MemberSchema.create(member);
await newMember.save();
} catch (e) {
console.log(`error creating member ${e}`);
}
},
};
导出的成员架构:
const mongoose = require('mongoose');
const MemberSchema = new mongoose.Schema({
userID: mongoose.SchemaTypes.String,
guildID: mongoose.SchemaTypes.String,
points: Number
});
module.exports = mongoose.model('Member', MemberSchema);
我尝试了将数据添加到数据库的不同方法,但唯一有效的测试是在同一代码块中同时声明 memberSchema 和新成员。对正确导入/导出 memberSchema 模型有什么建议吗?
您的导入语句不正确。你应该像这样导入
const Member = require('../schemas/member-schema');
然后在路由中,使用
await Member.create(member);