在定义值时将nodejs导出混淆,但将错误抛出为未定义

时间:2015-07-09 01:41:09

标签: node.js express

我真的与导出混淆,以下代码不断出错(我是nodejs的新手) TEST OUT [对象] 给我打了电话 TypeError:无法读取未定义的属性“邮件程序”     在Function.exports.test(/Applications/MAMP/htdocs/PS/server/mail.js:13:28) 但我需要邮件程序,当我尝试console.log时,它也不是未定义的?任何人都可以帮忙吗? require('./ mail')(app,config); (我注入应用程序和配置) var mailer = require('express-mailer'); var exports = module.exports = function(app,config){ }; exports.test = function(app,config){   console.log('TEST OUT'+邮件程序)   console.log(“叫我”);   mailer.extend(app,config.mailer);   app.mailer.send('email.ejs',{     to:'btest@test.com',//需要。这可以是逗号分隔的字符串,就像普通的电子邮件到字段一样。     主题:'测试电子邮件',//必需。     数据:'责备我的伴侣'     // otherProperty:'Other Property'//所有其​​他属性也作为局部变量传递给模板。   },function(err){     if(错误){       //处理错误       的console.log(ERR);       res.send('发送电子邮件时出错');       返回;     }     的console.log( “SEND”)     // res.send('Email Sent');   }); }; 固定 var mailer = require('express-mailer'); var _app; var _config; var exports = module.exports = function(app,config){     _app = app;     _config = config; }; exports.test = function(){   mailer.extend(_app,_config.mailer);   app.mailer.send('email.ejs',{     to:'btest@test.com',//需要。这可以是逗号分隔的字符串,就像普通的电子邮件到字段一样。     主题:'测试电子邮件',//必需。     数据:'责备我的伴侣'     // otherProperty:'Other Property'//所有其​​他属性也作为局部变量传递给模板。   },function(err){     if(错误){       //处理错误       的console.log(ERR);       res.send('发送电子邮件时出错');       返回;     }     的console.log( “SEND”)     // res.send('Email Sent');   }); };

1 个答案:

答案 0 :(得分:1)

您可以在邮件文件中收到appconfig,最后导出包含名为test的方法的对象,以便在test方法中, <{1}}和app变量将可用。

config

当你消费它时,你可以做类似的事情:

'use strict';

var mailer = require('express-mailer');

module.exports = function(app, config) {
  // some code ..

  return {
    test: function() {
      var message = {
        to: 'btest@test.com',
        subject: 'Test Email',
        data: 'replace me mate'
      };

      mailer.extend(app, config.mailer);
      app.mailer.send('email.ejs', message, function(err) {
        if (err) {
          console.log(err);
          return;
        }

        console.log('message was sent successfully');
      });
    }
  };
}