类中的变量未定义NodeJS

时间:2018-01-19 20:20:14

标签: node.js

我正在开发一个应用程序来发送带有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();
    });
});

0 个答案:

没有答案