【问题标题】:Mongoose: OverwriteModelError: Cannot overwrite `users` model once compiledMongoose:OverwriteModelError:编译后无法覆盖“用户”模型
【发布时间】:2021-03-24 19:05:52
【问题描述】:

我正在使用 Mongoose 管理 MongoDB 服务器,所有其他出现此错误的解决方案都没有帮助。模型没有在其他任何地方定义,我能想到的唯一问题是表/模型已经存在于 MongoDB 服务器上,但除此之外,我以前从未遇到过这个问题。

我当前的代码是这样的:

const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE_URL, {useNewUrlParser: true, useUnifiedTopology:true});

const users = require('../../models/Users.schema')
const accounts = require('../../models/Account.schema')

export default (req, res) => {
    users.findOne({ email: req.body.email }, function (err, user) {
        console.log(user)
        accounts.findOne({ userId: user._id }, function (err, account) {
            console.log(account)
          return res.json({
            error: false,
            body: account
          })
        })
    })
}

用户架构(主要作为示例,所有架构都会出现此问题)

const mongoose = require('mongoose');

const usersSchema = new mongoose.Schema({
    name: String,
    email: String,
    image: String,
    createdAt: Date,
    updatedAt: Date
})

module.exports.users = mongoose.model('users', usersSchema);

我要做的是从NextAuth 获取未正常提供的数据,例如accessTokensession.accessToken 不是正确的accessToken)。

我不知道该怎么做,我会尽我所能获得帮助。 谢谢!

【问题讨论】:

  • 如果您将其简化为 MWE,将其范围扩大一点,并包含完整的错误,将会很有趣。如果你做不到,那就意味着错误是在与 NextAuth 的交互中,不管是什么

标签: node.js mongodb mongoose next-auth


【解决方案1】:

发生错误是因为您已经定义了架构,然后您再次定义架构

【讨论】:

  • 但这不是问题,它从未在其他任何地方定义过。
猜你喜欢
  • 2014-06-25
  • 2020-11-13
  • 2019-01-13
  • 2017-12-22
  • 2013-10-03
  • 2014-08-03
  • 2015-04-25
  • 2017-06-22
相关资源
最近更新 更多