当前位置: 首页 > news >正文

Mongoose OverwriteModelError: Cannot overwrite `note` model once compiled.

错误详情

OverwriteModelError: Cannot overwrite note model once compiled.
at Mongoose.model (E:\code\react\note\node_modules\mongoose\lib\mongoose.js:608:13)
at eval (webpack-internal:///(rsc)/./utils/model/Note.ts:8:114)
at (rsc)/./utils/model/Note.ts (E:\code\react\note.next\server\app\api\note\route.js:102:1)
at webpack_require (E:\code\react\note.next\server\webpack-runtime.js:33:42)
at eval (webpack-internal:///(rsc)/./app/api/note/route.ts:7:75)
at (rsc)/./app/api/note/route.ts (E:\code\react\note.next\server\app\api\note\route.js:82:1)
at webpack_require (E:\code\react\note.next\server\webpack-runtime.js:33:42)

背景

正准备开发一个个人博客,记笔记用的前端项目。使用nextjs前端框架+ Mongodb免费云数据库。
使用mongoose查询数据,新增数据都没问题。但是每次修改一两句代码,项目重新编译后,再新增数据,就会报上面错误!每天都能遇到奇怪的问题。。

分析解决

在网上逛了半天,很多的回答的解决办法都是如下:

import { models, model, now, Schema } from "mongoose";

const NoteSchema = new Schema({
    author: String,
    title: String,
    content: String,
    ctime: {type: Date, default: Date,now},
    utime: {type: Date, default: Date,now},
    type: {type: Number, default: 1},
    view: Number
})

const Note = models.Note ||  model('note', NoteSchema)

export default Note

简答说明一下:先通过models.Note判断一下note这个model有没有创建,如果没有创建就走|| 后面代码,通过model创建名叫note的mode。
思路是这样,然后我的代码也是这样,根本没问题呀?完全没意识到我的代码哪里出错了!
运行代码继续报同样的错误,内心万马奔腾了,怎么天天都遇到棘手的问题?
终于经过我的不懈努力,在github发现一个有趣的回答,说是把model创建的名称改成大写!!!
我靠,还真行了。。
代码如下:

// 错误代码
const Note = models.Note ||  model('note', NoteSchema)
// 正确写法note -> Note
const Note = models.Note ||  model('Note', NoteSchema)

数据库里面,保存笔记数据的名字就是note,所以用model创建模型的时候我也用的note’字符串。完全没想到用大写!唉是真的无语,折腾了好几个小时,一整个下午+晚上都不开心,浪费了好多时间。

总结

也不知道怎么总结这个问题。。感觉就很无语,有没有大佬解释一下为什么?提前说声谢谢!

相关文章:

  • 易基因:朱健康团队WGBS揭示主动DNA去甲基化缺失植物的DNA甲基化跨代增加|PNAS
  • SprinBoot+Vue山西文旅网的设计与实现
  • 【原创】java+springboot+mysql疫情期间在线答疑系统设计与实现
  • 【笔记】自动驾驶预测与决策规划_Part1_自动驾驶决策规划简介
  • 单链表的实现(C语言)
  • 利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)
  • S7-1500替代S7-300全解析系列
  • Python中的单例模式:从入门到精通
  • SpringCloud Alibaba入门简介
  • 逆向基础一阶段检测-1
  • Facebook的虚拟现实计划:未来社交的全新视角
  • spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)
  • 绩效考核自动化:SpringBoot月度管理
  • freertos 任务调度—抢占式, 时间片
  • src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录
  • LeetCode 206. 反转链表
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——06添加二级按钮
  • 【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况(2)
  • 微信小程序npm扩展能力探究
  • Java代理模式
  • 马上评|“为偶像正名”的正确做法是什么
  • 上海市重大工程一季度开局良好,崇明线等按既定计划加快建设
  • 首个偏头痛急性治疗药物可缓解前期症状
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 科普|揭秘女性压力性尿失禁的真相