2013-05-31 34 views
1

我想獲取一些數據保存到MongoDb。我事先跟着下面的例子,並驗證它的工作原理,但現在我試圖用這個「格式」編寫我自己的測試應用程序,它不工作。 MongoDb不會拋出任何錯誤,我甚至可以從插入回調中檢索doc _id。然而,當我進入Mongo shell時,集合甚至不存在文檔。MongoDb插入通過Node.js本機驅動程序不插入

這裏是我跟着原來只是讓你可以感受一下我試圖模仿我自己的測試應用程序的方式,例如:

http://blog.ijasoneverett.com/2013/03/a-sample-app-with-node-js-express-and-mongodb-part-1/

下面是我的嘗試是失敗。謝謝你的幫助!

下面是我的DB代碼:

var Db = require('mongodb').Db, 
    Connection = require('mongodb').Connection, 
    Server = require('mongodb').Server, 
    BSON = require('mongodb').BSON, 
    ObjectID = require('mongodb').ObjectID; 


Repository = function(host, port){ 
    this.db = new Db('test-mongo-db', new Server(host, port, {safe: true}, {auto_reconnect:true}, {})); 
    this.db.open(function(){ 

     console.log('db open'); 

    }); 
}; 

Repository.prototype.getCollection = function(callback){ 
    this.db.collection('owners', function(error, owners_collection){ 
     if (error) callback(error); 
     else 
      callback(null, owners_collection); 
    }); 
}; 

Repository.prototype.createOwner = function(owner, callback){ 
    this.getCollection(function(error, owners_collection){ 

     if (error) callback(error); 
     else { 

      owners_collection.insert(owner, function(error, doc){ 

       if (error) callback(error); 
       else { 
        console.log('insert was successful: ' + doc[0]['_id']); 
        callback(null, owner); 
       } 
      }); 

     } 

    }); 
}; 

exports.Repository = Repository; 

下面是一個調用它的代碼:

var Repository = require('../repositories/Repository').Repository; 

exports.createOwner = function(req, res){ 


    var owner = { 

     email : req.body.email, 
     password : req.body.password, 
     firstName : req.body.firstName, 
     lastName : req.body.lastName, 

     schools : [] 

    }; 

    var repository = new Repository('localhost', 27017); 

    repository.createOwner(owner, function(error, docs){ 

     if (error) console.log('saving owner failed : ' + error); 
     else { 
      console.log('saving owner successful'); 
      res.redirect('/'); 
     } 

    }); 
}; 
+0

您可以將您的控制檯輸出呢? – Tracker1

+0

你好!沒有錯誤。唯一的控制檯輸出是你在上面的代碼中看到的成功消息。早些時候,我把字面控制檯日誌無處不在,一切似乎都打了,只是沒有真正保存。 – cpeele00

+0

我更加好奇的消息是亂序,而不是如果有錯誤。 – Tracker1

回答

相關問題