2016-07-21 90 views
0

我很努力讓節點保存發佈到MongoDB的請求,我沒有收到任何錯誤,但沒有任何數據被存儲在數據庫中。節點Mongoose不保存發佈請求

modules.js

var mongoose  = require ('mongoose'), 
Schema  = mongoose.Schema, 
modulesSchema = new Schema (
    { 
     ModuleID: Number, 
     ModuleName: String, 
     ModuleLeader: String 
    }, { _id: false } 
); 

module.exports = mongoose.model ('Module', modulesSchema); 

server.js

var express = require ('express'), 
    app  = express(), 
    bodyParser = require ('body-parser'), 
    jwt  = require ('jsonwebtoken'), 
    mongoose = require ('mongoose'), 
    mongoUri = 'mongodb://feedbacker:[email protected]:11472/feedbacker'; 
    secretKey = 'f33db3ck4r'; 

// database in the cloud 
mongoose.connect (
    mongoUri, function (error) 
    { 
     if (error) 
     { 
      console.error ('Mongoose Error! Error: ', error); 
     } 
    } 
); 

// bodyparser to read and post json data 
app.use (bodyParser.urlencoded ({ extended: true })); 
app.use (bodyParser.json()); 

// load models 
var User = require ('./models/user'), 
    Student = require ('./models/student'), 
    Module = require ('./models/modules'); 

router.route('/module').post(function(req, res) { 
    var module = new Module(); 
    module.ModuleID = req.body.moduleID; 
    module.ModuleName = req.body.moduleName; 
    module.ModuleLeader = req.body.moduleLeader; 

    module.save(function(err) { 
     if (err) 
      return res.send(err); 

     res.json({ message: 'Module Created!' }); 
    }); 
}); 
// register router 
app.use ('/api', router); 

我剪下server.js的塊存儲爲大部分是中間件等航線事情不影響本。

我已經使用Postman來測試這個,我沒有得到res.json消息。 但是,如果我改變路由太:

router.route('/module').post(function(req, res) { 
var module = new Module(); 
module.ModuleID = req.body.moduleID; 
module.ModuleName = req.body.moduleName; 
module.ModuleLeader = req.body.moduleLeader; 

module.save(function(err) { 
    if (err) 

    res.json({ message: 'Module Created!' }); 
}); 
}); 

這是去掉下面一行:「模塊創建」

return res.send(err); 

這確實會發送一個響應...所以這種情況發生的原因是什麼?因爲我在任何地方都沒有錯誤,也沒有任何東西被存儲。是的,我的數據庫的詳細信息設置正確

任何幫助apprecaited。

回答

0

啊原來使用_id虛假不下來去好了,我改變了我的模型:

var mongoose  = require ('mongoose'), 
    Schema  = mongoose.Schema, 
    modulesSchema = new Schema (
     { 
      _id: Number, 
      moduleName: String, 
      moduleLeader: String 
     } 
    ); 

module.exports = mongoose.model ('Module', modulesSchema); 
0

Heyy我不知道,但你是返回res.json({消息:「模塊創建! '})如果有錯誤

module.save(function(err) { 
    if (err) 

    res.json({ message: 'Module Created!' }); 

}); 那麼試試這個correting這可能是它的工作原理... 並且還嘗試這樣運行了檢查什麼respoonseü越來越

module.save(function(err,data) { 
    if (err){ 
    console.log("Error",err) 
    return 
    } 
    console.log(data) 
    res.json({ message: 'Module Created!' }); 
}); 
後一次