从导出的函数回调中读取结果

时间:2013-04-16 15:42:08

标签: node.js callback mongoose

我无法找到解决这个简单问题的方法:我想调用从外部.js导出的函数并保存输出。我做了以下事情:

db.js

function findMessages () {
    allMsg = mongoose.model('allMsg');
    allMsg.find(function (err, message) {
       console.log('here is ok');
       return message;
    });
};

exports.returnMessages = findMessages;

app.js

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

app.get('/message', function(req, res){
  var messages = db.returnMessages();
  console.log('Nothing here (undefined): ' + messages);
});

如何阅读app.js中的消息? 感谢。

1 个答案:

答案 0 :(得分:2)

简单回答:你做不到。这不是回调的工作方式。

您需要更改findMessages()以接受回调功能。

function findMessages (callback) {
    allMsg = mongoose.model('allMsg');
    allMsg.find(function (err, message) {
       callback(message)
    });
};

// app.js
app.get('/message', function(req, res) {
    db.returnMessages(function(messages) {
        console.log(messages);
    });
});