当前位置: 首页 > 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’字符串。完全没想到用大写!唉是真的无语,折腾了好几个小时,一整个下午+晚上都不开心,浪费了好多时间。

总结

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


http://www.mrgr.cn/news/25122.html

相关文章:

  • 使用API有效率地管理Dynadot域名,查看域名服务器(NS)信息
  • 量化交易backtrader实践(一)_数据获取篇(3)_爬取数据
  • wifiip地址可以随便改吗?wifi的ip地址怎么改变
  • 不会写招加盟商广告语的品牌看过来,实用的文案模版!
  • Rust的常量
  • QT QSystemTrayIcon创建系统托盘区图标失败
  • ActiViz中的vtkActor2D基本用法
  • 万字长文解析:计算机视觉领域的目标检测与图像分割(不断更新)
  • 50.【C语言】字符函数和字符串函数(上)
  • 基于vue框架的宠爱有佳宠物医疗管理系统4x10z(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 前端面试常见手写题
  • Unity Apple Vision Pro 开发(十):通过图像识别锚定空间
  • 怎么设置电脑禁止访问网页/网站?一分钟教你五个方法,实现网站访问黑名单,让员工专注力满满!
  • Linux创建虚拟磁盘并分区格式化
  • 无人机低空安全管控系统技术详解
  • JDBC API详解一
  • 宏任务和微任务+超全面试真题
  • 时尚穿搭想换就换,各种风格一键完美搭配!亲测在线虚拟试衣换装平台效果超赞!
  • 一些了解WEB API的相关知识点的学习
  • [产品管理-9]:NPDP新产品开发 - 7 - 战略 - 愿景、使命、价值观的区别