Me too - I also put most of my requires in there too.
Richard


On 14 Sep 2012, at 17:05, "Chad Engler" <[email protected]> wrote:

> I generally have a “common” module that is included everywhere. I think that 
> is fairly common practice.
>  
> -Chad
>  
> From: [email protected] [mailto:[email protected]] On Behalf Of 
> Aga
> Sent: Friday, September 14, 2012 10:53 AM
> To: [email protected]
> Subject: [nodejs] Newbie question: How to share basic functions (for error 
> handling, logging etc.) between modules?
>  
> Hi,
>  
> What's the best solution to share "basic" functions between modules?
> Is it ok to require a helper module in _every_ module? (because modules are 
> cached after the first time they are loaded)
> 
> e.g.
> 
> // helper.js
>  
> 
> exports.cfg = require("config");
> 
> 
> exports.log = new Logger({
> ...
> })
> 
> exports.error = function error(childErr) {
>   var err = new Error();
>   err.childErr = childErr;
>   return(err);
> }
>  
> exports.logError = function logError(err) {
>   var count = 1;
>   var errors = []
>   while(err) {
>     errors.push("Stack " + count++ + " => " + err + ": " + err.stack);
>     err = err.hasOwnProperty("childErr") ? err.childErr : undefined;
>   }
>   console.log(errors.join("\n"));
>   return;
> }
> 
> 
> 
> Requiring helper.js in each module allows application wide log(), cfg and to 
> pass errors around rather than throwing them:
> 
> 
> // model.js
>  
> var helper = require(helper.js);
>  
>   ...
>   if(err) {
>     return(callback(helper.error(err)));
>   }
>   ...
>  
> 
> // controller.js
> var helper = require(helper.js);
> var log = helper.log;
> 
>   log.debug("Running controller.js");
>   ...
>   if(err) {                                       // get error from model
>     helper.logError(helper.error(err));           // log the error with all 
> stack traces
>     return next(new Error("An error occured!"));  // return an useful error 
> message/http status code
>   }
>   ...
>  
>  
> What do you think about this solution? Is it ok to require helper.js in every 
> module file?
> Or is there an easier way? If so, it would be very nice if someone could post 
> some code examples.
>  
> Thanks
> Aga
>  
> -- 
> 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
> -- 
> 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

-- 
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

Reply via email to