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.