我有一个箭头功能,但是当我调用它时,表示它不是一个功能。
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);
});
我是箭头功能的新手,也许这可能是问题所在。但我已经搜索过,无法确定问题所在。
答案 0 :(得分:0)
将此分为两步。定义callbalck然后导出它。
var callback = (app) => {
// your code
}
module.exports = callback;
或者,这可能是您的环境不支持ES6
的原因。你需要一个vanilla ES5函数语法。
module.exports = function(app){
// your code
}