On Sep 13, 2013, at 5:38 AM, greelgorke <[email protected]> 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 <[email protected]> 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 [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]
> > 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 [email protected].
> > 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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected].
> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.