On Sep 13, 2013, at 5:38 AM, greelgorke <greelgo...@gmail.com> wrote: > Am Donnerstag, 12. September 2013 21:44:03 UTC+2 schrieb akira: > All I want to do is create fixtures for my application doing: > > 1. Retrive an "profile" from a mongo db collection > 2. Create a new empty object object and fill it with some data from the above > profile > 3. "export" the object, in this case a "Message" > > > The module that needs a Message instance is a library called > 'pow-mongoose-fixtures'. It searches a "fixtures" folder and creates fixures > using alle the files it finds in this folder provided each of these files > export a Mongoose instance. My problem is just that the "Message" instance > that I am created depends on the results of a profile instance. > > Was this a bit clearer? How can I create an Instance and delay passing it to > exports? >
AFAIK, you cannot. Assuming I am right, there are a couple of options for you: 1. Do not do async operations in the module init. Instead return a partial object and provide methods for the caller to know when you are ready: either a ‘ready’ event that your module/object emits (better) or a polling function (worse). 2. Use promises: which is kind of the same thing as above, except the promise module hides away some of the work. —ravi > Thanks > > > On Thursday, September 12, 2013 8:28:36 PM UTC+2, // ravi wrote: > On Sep 12, 2013, at 1:27 PM, akira <nhy...@gmail.com> wrote: > > I am trying to retrive data from a MongoDB collection and pass it as an > > extended object to module exports for scaffoling purposes. The code below > > does not work, can anyone tell me why? > > > > //Mongoose model > > var Profile = require('./../../models/profile'); > > > > Profile.findOne({'username': 'test'}, function(err, profile) { > > exports.Message = [{ > > "senderID": profile._id, > > "receiverID": profile._id, > > "text": "foobar1", > > "seen": false, > > 'timeSent': { > > type: Date, > > default: Date.now > > }, > > 'timeSeen': { > > type: Date, > > default: Date.now > > } > > }] > > > > > > }); > > > > I can’t quite tell all that’s happening above, but if the above is the code > in your own module, then the module code returns before the callback (to > findOne()) is run, so nothing is returned in module.exports to the > caller/requirer. If my diagnosis is correct, maybe you can return a promise. > > —ravi > > > > > Thanks > > > > > > -- > > -- > > Job Board: http://jobs.nodejs.org/ > > Posting guidelines: > > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > You received this message because you are subscribed to the Google > > Groups "nodejs" group. > > To post to this group, send email to nod...@googlegroups.com > > To unsubscribe from this group, send email to > > nodejs+un...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/nodejs?hl=en?hl=en > > > > --- > > You received this message because you are subscribed to the Google Groups > > "nodejs" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to nodejs+un...@googlegroups.com. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to nodejs+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.