node throw new mongoose.Error.OverwriteModelError(name);

2018-11-02 12:40   Tags:

前面在写之前还在想,这个破东西,怎么共用啊,每次都要复制一遍多麻烦啊,然后问题就来了,啊哈哈

在路由js文件里面加了model,报错:throw new mongoose.Error.OverwriteModelError(name);

我在1.js文件写了个model,

但是我想在2.js文件里也使用,于是我就在2.js文件里,把前面那个复制了过来,但是一运行就报错

因为下面这种article_category相同了,于是就报错,

Cat = mongoose.model('article_category',Category);

只能独一无二这个样子吧,只能把它独立出来,把model专门放到一个文件里,并且暴露出来调用,

例如创建一个dbs.js文件放model

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/dbsname');
const Schema = mongoose.Schema;

//分类数据
const Category = new Schema({
    title: String,                              //标题
});

//文章数据
const Article = new Schema({
  
    title: {type:String,default:null},    //文章标题
    content: {type:String,default:null},  //文章内容
});


const dbs={};

dbs.Articles = mongoose.model('article_data',Article);

dbs.Cat = mongoose.model('article_category',Category);

module.exports = dbs;

在用到的文件里调用

let dbs=require("./dbs");//dbs.js就是独立出来的连接数据库的模块文件;
dbs.Articles.find({},function(err,data){
    console.log(data)  //测试
})

相关问题:

https://stackoverflow.com/questions/14641834/how-to-get-rid-of-error-overwritemodelerror-cannot-overwrite-undefined-mode

https://blog.csdn.net/Sophie_U/article/details/53495624