2017-05-09 45 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