/**使用promise保证只有当前的数据保存成功时,才会继续下一个(因为保存卡片和文档时,需要频道数据)*/
var promise = Promise.resolve();
function saveModel(model){
promise = promise.then(function(){
return new Promise(function(resolve,reject){
model.save(function(err,data){
if(err){
console.log(err);
reject(err);
}else{
resolve();
}
});
});
});
}
gulp.task('db', ['load-all-models'], function (cb) {
// 连接测试数据库
var db = mongoose.connect(config.db, function (err) {
console.log('连接测试数据库',err);
// 清空测试数据库
db.connection.db.dropDatabase(function (err, result) {
if (err) {
throw err;
}
console.log('清空测试数据库');
console.log('加载测试数据');
for(var model in datas){
console.log('加载'+ model);
var Model = mongoose.model(model);
for(var data in datas[model]){
try{
var d = new Model(datas[model][data]);
saveModel(d);
}
catch(e){
console.log(e);
}
}
}
});
});
});