我正在开发一个应用程序来发送带有nodeJs 6.9和express 4的电子邮件。 我也在使用一个名为powerdrill的库,它是调用Mandrill API的库。
我正在尝试使用消息变量,它是使用powerdrill库创建对象并发送电子邮件的变量。我在方法中使用此变量但是抛出错误。
'use strict';
var config = require('config'),
queries = require('api/queries'),
Message = require('powerdrill').Message;
class MandrillService{
constructor(config, Message) {
this.config = config;
this.Message = Message;
}
welcome(){
//console.log(req.body);
message = new Message();
message.apiKey(config.mandrillKey)
.subject('Welcom')
.template('welcome-email')
.from(config.mandrilEmail)
.to('david@gmail.com')
.tag('complex')
.globalMergeVar('VERIFY_EMAIL','link')
.send(function(err, resp) {
});
}
}
module.exports = new MandrillService(config);
错误:
Unhandled rejection ReferenceError: message is not defined
at MandrillService.welcome (/home/user/platform/services/mandrillService.js:28:17)
at /home/user/platform/services/notificationService.js:222:22
at Promise._execute (/home/user//platform/node_modules/bluebird/js/release/debuggability.js:303:9)
at Promise._resolveFromExecutor (/home/user/platform/node_modules/bluebird/js/release/promise.js:483:18)
我不知道类中的行为是什么,但如果我尝试在post方法中使用express调用方法,并使用如下代码,则代码可以正常工作。
var express = require('express'),
router = express.Router(),
config = require('config'),
Message = require('powerdrill').Message;
router.post('/welcome',function(req,res,next){
message = new Message();
message.apiKey(config.mandrillKey)
.subject(req.body.subject)
.template(req.body.template)
.from(config.mandrilEmail)
.to(req.body.to)
.tag('complex')
.globalMergeVar('VERIFY_EMAIL',req.body.linkVefifyEmail)
.send(function(err, resp)
res.send(resp).end();
});
});