1

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

数据库.js

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

exports.returnMessages = findMessages;

应用程序.js

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

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

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

4

1 回答 1

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);
    });
});
于 2013-04-16T15:50:08.873 回答