【问题标题】:Invalid schema configuration: `model` is not a valid type within the array无效的架构配置:`model` 不是数组中的有效类型
【发布时间】:2026-02-19 10:45:01
【问题描述】:

编辑:我的代码是正确的,我收到的答案也是正确的。在发布并得到答案后,我意识到错误来自另一个未在此处发布的文件。我发布此编辑是因为我不想删除。

我很确定我正在导入一个模式,但由于某种原因,它被解释为一个模型,并且我收到了这个 Invalid Schema Configuration 错误。这是要导入的架构:

user.js:

const mongoose = require('mongoose');
let Schema = mongoose.Schema;

const userSchema = new Schema({
    name: { type: String, required: true },
    email: { type: String, required: true },
    //eventsUpdated: [Schema.ObjectId],   // ids of events updated
    //flags: [Schema.ObjectId],   // ids of flags of events
});

const user = mongoose.model('user', userSchema);

module.exports = user;

这是正在导入的文件: flag.js:

const mongoose = require('mongoose');
let Schema = mongoose.Schema;
const userSchema = require('./user').schema;

const flagSchema = new Schema({
    field: String,
    count: Number,
    IPs: [String],
    lastCleared: Date,
    clearedBy: [userSchema]
});

const flag = mongoose.model('flag', flagSchema);

module.exports = flag;

我尝试过导入不同的方式,例如在 user.js 中仅显式导出 userSchema,但没有任何解决方案甚至出现不同的错误。我已经尝试过类似问题like this one 提供的解决方案。请帮忙,谢谢!

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您没有导出 userSchema

    而不是

    module.exports = user;
    

    使用

    module.exports = {
      user,
      userSchema
    };
    

    然后要求它

    const { userSchema } = require('./user');
    

    【讨论】:

    • 但是我正在使用这一行导入架构,对吗? const userSchema = require('./user').schema;另外,我试过你的建议,它给了我同样的错误。
    • 是的,你是对的。这是一个示例,您可以查看它也许会有所帮助repl.it/repls/OffshoreCluelessCommand
    最近更新 更多