【问题标题】:Grunt task to save mongoose object保存猫鼬对象的咕噜任务
【发布时间】:2013-04-24 21:20:11
【问题描述】:

我正在尝试编写一个简单的 grunt 任务来将对象保存到猫鼬集合中。我在保存命令时遇到问题。它不会打印出任何错误或保存消息。我不确定为什么。我已经通过 mongo shell 检查了集合,它没有保存。

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

module.exports = function(grunt) {

  grunt.registerTask('adduser', 'add a user to the database', function(usr) {
        var user = new db.userModel({ username: usr});

        console.log(user);
        user.save(function(err) {
          if(err) {
            console.log('error: ' + err);
          } else {
            console.log('saved user: ' + user.username);
          }
        });
  });

};

输出

$ grunt adduser:bob
Running "adduser:bob" (adduser) task
{ username: 'bob' }

Done, without errors.

输出应显示“错误:错误消息”或“保存的用户:bob”。但是由于某种原因,这段代码没有被执行。

【问题讨论】:

    标签: mongodb mongoose gruntjs


    【解决方案1】:

    user.save 调用是异步的,因此您需要将 Grunt 任务置于异步模式,如 here 所示。

    应该是这样的:

    grunt.registerTask('adduser', 'add a user to the database', function(usr) {
        var user = new db.userModel({ username: usr});
    
        // Invoke async mode
        var done = this.async();
    
        console.log(user);
        user.save(function(err) {
          if(err) {
            console.log('error: ' + err);
          } else {
            console.log('saved user: ' + user.username);
          }
    
          // Signal to Grunt that the async task is complete.
          done();
        });
    });
    

    【讨论】:

    • 谢谢。我现在在执行放置任务时遇到问题。也许你能帮忙?这是一个 smilar 错误,连接永远不会关闭,也没有给出输出。 grunt.registerTask('drop', 'drop the database', function() { 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); }); });
    • 我在这里创建了一个新问题:stackoverflow.com/questions/16310627/…
    • 如何在 Grunt 中建立猫鼬连接?
    • @Imray 最好将其作为一个新问题发布。
    • 当我用谷歌搜索“猫鼬咕噜”时,它首先出现。这不是单行答案吗?
    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多