Callback data out of mongoose query
You would either use the promise returned by .find().exec()
without a generator:
var getMessage = function (params) { return MessageModel.find({ to: params.to }).exec(); }app.get('/message/to/:to', function*(next) { this.body = yield getMessage(this.params);});
or yield the promise inside the generator and return the value you want:
var getMessage = function*(params) { var data = yield MessageModel.find({ to: params.to }).exec(); return data;}
Have a look at http://blog.stevensanderson.com/2013/12/21/experiments-with-koa-and-javascript-generators/ for more info on what you can yield.
disclaimer: I do not know koa.
Have you tried to yield the promise itself? https://github.com/LearnBoost/mongoose/issues/1859
var getMessage = function*(params) { var mPromise = MessageModel.find({ to: params.to }).exec(); yield mPromise; }app.get('/message/to/:to', function*(next) { this.body = yield getMessage(this.params);});