【问题标题】:Grunt task to drop mongoose database删除猫鼬数据库的 Grunt 任务
【发布时间】:2013-04-25 00:10:06
【问题描述】:

我正在尝试创建一个 grunt 任务来通过 mongoose 删除一个 mongodb 数据库。连接挂起,我必须强制退出,它实际上并没有删除数据库或输出错误。

var db = require('./db/schema');

grunt.registerTask('drop', 'drop the database', function() {
  // async mode
  var done = this.async();

  db.mongoose.connection.db.dropDatabase(function(err) {
    if(err) {
      console.log(err);
    } else {
      console.log('Successfully dropped db');
    }
    db.mongoose.connection.close(done);
  });

});

输出

$ grunt drop
Running "drop" task
Successfully connected to: mongodb://localhost/test
^C

【问题讨论】:

    标签: asynchronous mongoose gruntjs


    【解决方案1】:

    终于在这里找到了我的问题的解决方案:https://groups.google.com/forum/?fromgroups=#!topic/mongoose-orm/Cck_VND80r8 必须将所有内容都包装在 connection.on 中

    grunt.registerTask('drop', 'drop the database', function() {
    // async mode
    var done = this.async();
    
    db.mongoose.connection.on('open', function () { 
      db.mongoose.connection.db.dropDatabase(function(err) {
        if(err) {
          console.log(err);
        } else {
          console.log('Successfully dropped db');
        }
        db.mongoose.connection.close(done);
      });
    });
    });
    

    【讨论】:

      猜你喜欢
      • 2021-09-22
      • 2017-09-07
      • 2021-11-21
      • 2017-12-24
      • 2019-09-04
      • 2016-01-03
      • 1970-01-01
      • 2021-07-08
      • 2017-10-05
      相关资源
      最近更新 更多