KSohail
KSohail

Reputation: 69

how can i fix this error? " throw new mongoose.Error.MissingSchemaError(name);?

c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\index.js:497 throw new mongoose.Error.MissingSchemaError(name); ^ MongooseError [MissingSchemaError]: Schema hasn't been registered for model "Employee". Use mongoose.model(name, schema) at new MissingSchemaError (c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\error\missingSchema.js:22:11) at Mongoose.model (c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\index.js:497:13) at Object.

Blockquote

const express=require('express');
var router=express.Router();

const mongoose=require('mongoose');

//var Employee=require('../models/employee.model');
var Employee = mongoose.model('Employee');

router.get('/', (req,res)=>{
    res.render('C:/Users/fc/Desktop/projector/views/employee/addOrEdit.hbs', {
        viewTitle: "Insert Radio Employee Data"
    })
});
router.post('/', (req,res)=>{
    //before insertRecord Function below console.log(req.body); executed
    // console.log('New Employee Data has been Received!');
    // console.log(req.body);
    insertRecord(req, res);

});

// insertRecord function is use to insert data in mongoDB
function insertRecord(req, res){
    var employee= new Employee();
    employee.fullName=req.body.fullName;
    employee.email=req.body.email;
    employee.mobile=req.body.mobile;
    employee.city=req.body.city;
    employee.save((err,doc)=>{
        if(!err){
            res.redirect('employee/list');
        }
        else{
            console.log('An Error has been found:', err);
        }
    })
}


router.get('/list', (req,res)=>{
    res.json('from list');

});

// here one function is going to be exported
module.exports=router;

Upvotes: 0

Views: 1039

Answers (1)

Shihab
Shihab

Reputation: 2679

You are missing the mongoose schema as the error says. You are trying to create a model but there is no schema for it. Here is an example of how to create mongoose schema:

const express = require('express');
var router = express.Router();

const mongoose = require('mongoose');

//var Employee=require('../models/employee.model');

/**
 * Here is the mongoose schema .
 */
const employeeSchema = new mongoose.Schema({
    fullName: { type: String, default: '' },
    email: { type: String, default: '' },
    mobile: { type: String, default: '' },
    city: { type: String, default: '' }
});

/**
 * Create model using mongoose schema.
 */
var Employee = mongoose.model('Employee', employeeSchema);

router.get('/', (req, res) => {
    res.render('C:/Users/fc/Desktop/projector/views/employee/addOrEdit.hbs', {
        viewTitle: "Insert Radio Employee Data"
    })
});

router.post('/', (req, res) => {
    //before insertRecord Function below console.log(req.body); executed
    // console.log('New Employee Data has been Received!');
    // console.log(req.body);
    insertRecord(req, res);

});

// insertRecord function is use to insert data in mongoDB
function insertRecord(req, res) {
    var employee = new Employee();
    employee.fullName = req.body.fullName;
    employee.email = req.body.email;
    employee.mobile = req.body.mobile;
    employee.city = req.body.city;
    employee.save((err, doc) => {
        if (!err) {
            res.redirect('employee/list');
        }
        else {
            console.log('An Error has been found:', err);
        }
    })
}


router.get('/list', (req, res) => {
    res.json('from list');

});

// here one function is going to be exported
module.exports = router;

Upvotes: 0

Related Questions