2013-10-03 39 views
0

这只是一个简单的检查,如果集合不存在,那么创建它并预填充数据。这在我的本地框上工作正常,并且取决于在db.collection调用中设置的“strict”标志,如果该coll不存在,将会引发错误。它在Heroku上不起作用,但是,任何人都知道为什么?使用db.collection和严格标志在Heroku中不起作用

mongo.Db.connect(mongoUri, function (err, db) { 
    if (!err) 
    { 
    console.log("Connected to Database") 
    db.collection('collectionName', {strict:true}, function(er, collection) { 
     if (!er) 
     { 
     console.log("Collection opened, ready for use!") 
     } else { 
     console.log("DATA DOES NOT EXIST, PREPOPULATING") 
     populateDB(); 
     } 
    }); 
    } else { 
    console.log("Error connecting to database: " + err) 
    } 
}); 

的package.json

{ 
    "name": "appname", 
    "description": "Application", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
     "express": "3.x", 
     "mongodb": "1.3.x", 
     "socket.io": "0.9.10" 
    }, 
    "engines": { 
     "node": "0.8.4", 
     "npm": "1.1.49" 
    } 
} 

回答

0

没关系 - 我更新的节点在文件的package.json版本0.10.x和似乎解决它。