在NodeJS

时间:2016-01-30 17:58:14

标签: javascript node.js mongodb

首先,如果之前有人问我,我想道歉。我花了最后5个小时(是的,5个小时)试图让这个代码工作。

我觉得我应该使用承诺,但我需要你们的建议。如果我不需要使用承诺,我怎样才能得到我的工作?

我已经创建了一个从MongoDB中提取数据的函数:

var getData = function(db, channel, callback) {
      var cursor = db.collection('streams').find({'channel': channel});
      cursor.toArray(function(err, doc) {
         assert.equal(err, null);
         if (doc == null) {
             console.log("No docs found");
         } else {
             doc = doc[0];
             callback(null, doc);
         }
      });
    };

我可以使用此功能控制记录数据。

getData(db, "#cikez", function(err, result){
        assert.equal(err, null);
        if (result == null) {
            console.log("didn't work");
        } else {
            console.log(result); <-- logs results perfectly
        }
    });

我想做的是将上面的函数放入变量并返回数据(不是控制台记录它)。

var finalData = getData(db, "#cikez", function(err, result){
            assert.equal(err, null);
            if (result == null) {
                console.log("didn't work");
            } else {
                console.log(result); <-- I want to return this data.
            }
        });

所以我可以这样使用它。

client.raw("PRIVMSG #jtv :/w " + user.username + " " + randomResponse + " " + finalData); 

0 个答案:

没有答案