【问题标题】:While using an exported mongoose.model() cannot read properties of undefined (create)使用导出的 mongoose.model() 时无法读取未定义的属性(创建)
【发布时间】:2022-02-18 02:33:48
【问题描述】:

使用 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}`);
        }
      },
    };

导出的 MemberSchema:

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 模型有何建议?

【问题讨论】:

    标签: javascript node.js mongodb mongoose discord.js


    【解决方案1】:

    您的导入语句不正确。你应该像这样导入

    const Member = require('../schemas/member-schema');
    

    然后在路由中,使用

    await Member.create(member);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 2020-10-15
      • 2020-05-28
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多