为什么请求被保存在 express 中?

Why the request is being save in express?

我有问题。 我正在使用 Node 和 express 框架开发 API 以使用 Mandril 发送交易电子邮件。 我下载 powerdrill 库来调用 Mandrill API。

一切正常,电子邮件发送正常,除了 post 中的请求正在保存的问题。

例如,如果我调用 API 一次,我将发送一封电子邮件,如果我发送第二封,我将发送 2 封电子邮件(我发送的第一封和新的),并且如果我再次调用 API,我将发送 3 封电子邮件(第 2 封和新的)。

如您所见,我使用欢迎请求发送了 1 封电子邮件。在第二个中,我调用了另一个名为 submittedApplication 的请求,但是当我使用 POSTMAN 调用 API 时,发送了 2 封电子邮件 1.-新的和 2.- 又是第一个。

有人知道请求保存的原因吗?

var express = require('express'),
router = express.Router(),
config = require('config'),
Message = require('powerdrill').Message;
var message = new Message();

router.get('/',function(req,res){
res.send('test ok Mandrillllll');
})

router.post('/welcomeGorn',function(req,res){
  console.log(req.body);
  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) {
      //console.log(resp);
      res.send(resp).end();
    });
});

router.post('/submittedApplication',function(req,res){
  console.log(req.body);
  message.apiKey(config.mandrillKey)
    .subject(req.body.subject)
    .template(req.body.template)
    .from(config.mandrilEmail)
    .to(req.body.to)
    .tag('complex')
    .globalMergeVar('RECRUITER_NAME',req.body.recruiterName)
    .globalMergeVar('RECRUITER_EXTENSION',req.body.recruiterExtension)
    .globalMergeVar('RECRUITER_EMAIL',req.body.recruiterEmail)
    .send(function(err, resp) {
      //console.log(resp);
      res.send(resp);
    });
});

module.exports = router;

控制台向我显示此警告: Powerdrill:尝试添加同一封电子邮件两次。使用第一个实例的数据

你可以找到这个警告here

我认为问题是消息变量每次都保存所有信息并一起发送。尝试在每个方法的开头初始化它:

router.post('/welcomeGorn',function(req,res){
    var message = new Message();