【问题标题】:how can i fix this error? " throw new mongoose.Error.MissingSchemaError(name);?我该如何解决这个错误? " 抛出新的 mongoose.Error.MissingSchemaError(name);?
【发布时间】:2020-03-22 21:53:07
【问题描述】:

c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\index.js:497 抛出新的 mongoose.Error.MissingSchemaError(name); ^ MongooseError [MissingSchemaError]:尚未为模型“Employee”注册模式。 使用 mongoose.model(name, schema) 在新的 MissingSchemaError (c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\error\missingSchema.js:22:11) 在 Mongoose.model (c:\Users\fc\Desktop\projector\node_modules\mongoose\lib\index.js:497:13) 在对象。

块引用

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;

【问题讨论】:

  • 你的代码在哪里?有人怎么知道错误在哪里?
  • employeeController.js 代码如上。请

标签: node.js mongodb express mongoose


【解决方案1】:

如错误所示,您缺少猫鼬模式。您正在尝试创建一个模型,但它没有架构。以下是如何创建 mongoose 模式的示例:

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 2016-07-21
    • 2016-09-09
    • 2022-07-12
    • 2015-02-28
    相关资源
    最近更新 更多