javascript - Cannot call method 'render' of undefined -


i have create "employees" array , want generate mail using array data. create functionality in node.js following.

i have created 1 cron job called following functionality. when function called, following error raised:
cannot call method 'render' of undefined

exports.missedworksheets = function(req, res){    var user = new user();    var dailycurrentdate = [];   var dailycurrentdate1 = [];   var missedworkbyuser = [];   var employees = [];   var currentdate = moment(date.now()).format('yyyy-mm-dd');   console.log(currentdate);   var lastdate = moment(date.now()).subtract(7,'days');   var addeddate = moment(lastdate).format('yyyy-mm-dd');   console.log(addeddate);   for(var i=0; i<5; i++)   {     dailycurrentdate[i] = moment(addeddate).format('yyyy-mm-dd');     dailycurrentdate[i] = moment(dailycurrentdate[i]).add(1,'days');     dailycurrentdate1[i] = moment(dailycurrentdate[i]).format('yyyy-mm-dd');     addeddate = moment(dailycurrentdate1[i]).format('yyyy-mm-dd');     console.log(dailycurrentdate1[i]);   }    user.find().exec(function(err, missedusers) {     if (err) {       return res.status(400).send({         message: errorhandler.geterrormessage(err)       });     } else {       worksheet.find().populate('employee','._id').exec(function(err, missedworksheets){         if (err) {           return res.status(400).send({             message: errorhandler.geterrormessage(err)           });         }else{           for(var i=0; i<missedusers.length; i++){             for(var j=0; j<missedworksheets.length; j++){               if(string(missedusers[i]._id) != string(missedworksheets[j].employee._id))               {                 employees[i] = missedusers[i];               }             }           }           async.waterfall([                           function(done)                           {                             console.log("async called.");                             done(err,employees);                           },                           function(employees,done) {                             console.log("template fetch called.");                             app.render('templates/weekly-worksheet-checking', {                   //user: user,                   employee: employees,                 }, function(err,emailhtml) {                   done(err,emailhtml,employees);                 });                           },               // if valid email, send reset email using service               function(emailhtml,employees, done) {                 console.log("1-mail called.");                 var mailtoemployee = config.mailer.from;                 var smtptransport = nodemailer.createtransport(config.mailer.options);                 //users.getactiveadminusers(function(activeadminusers){                   var receivers=mailtoemployee+',';                 // (var in activeadminusers){                 //  var activeadminuser =   activeadminusers[i];                 //  receivers = receivers + activeadminuser.email+',';                 // }                 var mailoptions = {                   to: 'hareshr@systemintegration.in',                   from: config.mailer.from,                   subject: 'unfill worksheetlist of previous year',                   html: emailhtml                 };                 smtptransport.sendmail(mailoptions, function(err) {                   if (!err) {                     //  notification.email = leaveresponse.employee.email;                     //  notification.summary = leaveresponse.leavescheduletype;                     //  notifications.approveleavenotification(req,res,notification.email,notification.summary);                     res.jsonp(employees);                   }                    done(err);                 });                 //}); } ],function(err) {   if (err){     console.log(err);     return res.send({      message: errorhandler.geterrormessage(err)    });   } }); } });  } }); }; 

the error says all, app object not defined. since seem call method in callback function, maybe app object defined in scope of js code.

have @ bind method.

documentation:
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/function/bind

more details on how use it:
http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/#javascript8217s_bind_method

in other words, bind () allows set specific object bound when function or method invoked.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -