【问题标题】:Mongoose and Kue - Node.js - Object passed has no method saveMongoose 和 Kue - Node.js - 传递的对象没有保存方法
【发布时间】:2012-08-22 09:48:01
【问题描述】:

我正在使用 mongoose 和 Kue 进行流量控制。我将从数据库中检索到的对象传递给 Kue。处理作业后,对象不再具有某些功能,例如 .save() 等。

  jobs.process('process', 5, function(job, done) {
        var url = job.data.url;
        var objo = job.data.comp;

        request({uri:url, json:true}, function(err, res, body) {
            objo.meta = body;

            // Here it throw an error that save is note defined
            // TypeError: Object #<Object> has no method 'save'
            objo.save(function(err) {
                if (err)
                    throw err;
                console.log('Saved data for ' + objo.title);
                done();
            });
        });
    });


    var q = db.Entity.find({}).sort('_id', 1).limit(10);

    q.execFind(function(err, docs) {
        docs.forEach(function(objo) {

            jobs.create('process', {
                comp : objo,
                url : 'http://example.com/' + encodeURIComponent(objo.permalink) + '.js'
            }).save();
        })
    });

提前致谢

【问题讨论】:

    标签: node.js mongodb request mongoose kue


    【解决方案1】:

    这是因为 Kue 并没有完全保存对象,它只是保存了在其上调用 JSON.stringify() 的值。您需要传入对象的 id,然后将 mongoose 表示从您的工作人员的数据库中取出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-13
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2020-08-17
      • 2014-07-12
      相关资源
      最近更新 更多