2017-05-09 46 views
0

我有一个看起来像这样的教授的猫鼬模型。无法将文档保存到集合 - 猫鼬

var mongoose = require('mongoose'); 
var uuidV4 = require('uuid/v4'); 
var Professors = mongoose.model('Professors', { 
    _id:{ 
     type: String, 
     defualt: uuidV4() 
    }, 
    professorfirstName: { 
     type: String, 
    }, 
    professroLastName: { 
     type: String, 
    }, 
    reviews: [ 
     { 
      review: { 
       type: String 
      }, 
      reviewer: { 
       type: String 
      }, 
      rating: { 
       type: Number 
      } 
     } 
    ], 
    ratings: { 
     type: Number 
    } 
}); 

module.exports = { 
    Professors: Professors 
} 

我对教授的文件路径如下:

var {Professors} = require('./../server/models/professors'); 
var {mongoose} = require("./../server/db/mongoose"); 
var router = require('express').Router(); 

router.get('/getAllProfessors', (req, res) => { 
    Professors.find().then((data) => { 
     res.send({data}); 
    }, (err) => { 
     res.status(400).send(err); 
    }); 
}); 

router.post('/add', (req, res) => { 
    var professor = new Professors({ 
     professorfirstName: "test", 
     professorlastName: "test", 
     reviews: [], 
     ratings: 5 
    }); 

    professor.save().then((data) => { 
     res.send({data}); 
    }, (err) => { 
     console.log("Didn't save!!"); 
     res.status(400).send(err); 
    }); 
}); 

module.exports = router; 

上面的代码,我的获取途径是工作的罚款。我能够提取数据库中的所有教授。但我的'添加'路线不起作用。我无法保存收藏中的记录。我的身份是400,我只是在邮递员中获得一个空记录,就像这个'{}'。我在这做错了什么?

+0

尝试记录'err':'console.log(“Did not save !!',err)'。顺便说一下,你的模式包含一些错字('defualt','professroLastName') – robertklep

+0

@robertklep我是得到这个错误“错误:文档必须有一个_id保存之前” – kiiiiNNNNNNNNNyyyy

+0

@robertklep该程序工作,如果我在添加路由添加_id,但我的问题是不应该uuid自动提供该ID,因为我已经将其添加为默认? – kiiiiNNNNNNNNNyyyy

回答

1

有你的模式的几个问题:

_id:{ 
    type: String, 
    defualt: uuidV4() 
}, 

defualt拼写错误,而且,它应该引用的函数;在你的情况下,你立即执行该函数,因此引用是单个字符串,这是不正确的。

这应该更好地工作:

_id : { 
    type : String, 
    default : uuidV4 
} 

还有就是在架构中的另一个错字:professroLastName应该是professorLastName