I can't find a solution to this simple issue: I want to call a function exported from an external .js and save the output. I've done the following:
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);
});
How can I read messages in app.js? Thanks.
Simple answer: You cannot. That's not how callbacks work.
You need to change findMessages() to accept a callback function.
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);
});
});