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.

Reply via email to