箭头功能不起作用?

时间:2016-06-27 13:21:29

标签: javascript node.js

我有一个箭头功能,但是当我调用它时,表示它不是一个功能。

TypeError: callback is not a function
module.exports = app => {
    const mailer = nodemailer.createTransport(sgTransport(options));
    return {
        send: (config, callback) => {
            if(config.content && config.to && config.subject) {
                let email = {
                    from: 'noreply@fullmonitoramento.com.br',
                    to: config.to,
                    subject: config.subject,
                    text: 'config.subject'
                };
                const path = "./emails/" + config.template + ".html";
                let pageHtml = '';
                fs.readFile(path, (err, data) => {
                    if (err) throw err;
                    pageHtml = data.toString();
                    email.html = pageHtml.replace("[EMAIL.CONTENT]", email.content);

                    mailer.sendMail(email, (err, res) => {
                        if (err) { 
                            console.log("Erro ao enviar email.")
                        }
                        if (typeof callback == "function") {
                            return callback(res);
                        }
                    });
                });
            }
            else {
                console.log("Necessário passar um config válido.");
            }
        }
    };
};

mail.send(email, (callback) => {
            console.log(typeof callback);
            // console.log(callback);
        });

我是箭头功能的新手,也许这可能是问题所在。但我已经搜索过,无法确定问题所在。

1 个答案:

答案 0 :(得分:0)

将此分为两步。定义callbalck然后导出它。

var callback = (app) => {
   // your code
}
module.exports = callback;

或者,这可能是您的环境不支持ES6的原因。你需要一个vanilla ES5函数语法。

module.exports = function(app){
  // your code
}