Sometimes, we want to fix the ‘schema hasn’t been registered for model’ error with Mongoose
In this article, we’ll look at how to fix the ‘schema hasn’t been registered for model’ error with Mongoose.
How to fix the ‘schema hasn’t been registered for model’ error with Mongoose?
To fix the ‘schema hasn’t been registered for model’ error with Mongoose, we should call require on the model files we created.
For instance, we write
/models/Posts.js
const mongoose = require('mongoose');
const PostSchema = new mongoose.Schema({
title: String,
link: String,
upvotes: {
type: Number,
default: 0
},
comments: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Comment'
}]
});
mongoose.model('Post', PostSchema)
to create the PostSchema and register it as 'Post' with the mongoose.model method.
Then we register the models after we connect to the database with
db.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/news');
require('./models/Posts');
to call require with './models/Posts' to run the code in /models/Posts.js which registers the model Post model so we can use it.
Conclusion
To fix the ‘schema hasn’t been registered for model’ error with Mongoose, we should call require on the model files we created.