为什么请求被保存在 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();
我有问题。 我正在使用 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();