我正在开发一个前端使用 ReactJS 和后端使用 express 的 web 应用程序。我正在将我的应用程序部署到 azure。
为了测试我的请求是否通过,我编写了两个不同的 API 请求。
第一个很简单:
router.get('/test', (req, res) => {
res.send('test was a success');
});
然后在前端,我有一个按钮,单击该按钮会发出请求,然后得到响应“测试成功”。这每次都有效。
第二个测试是:
router.post('/test-email', (req, res) => {
let current_template = 'reset';
readHTMLFile(__dirname + '/emails/' + current_template + '.html', function(err, html) {
let htmlSend;
let template = handlebars.compile(html);
let = replacements = {
name: req.body.name
};
htmlSend = template(replacements);
let mailOptions = {
from: 'email@email.com',
to: 'someone@email.com',
subject: 'Test Email',
html: htmlSend
};
transporter.sendMail(mailOptions)
.then(response => {
res.send(response);
})
.catch(console.error);
});
});
然后,当我部署了应用程序时,我会调用这些测试中的每一个。第一个,就像我提到的那样总是成功。第二个应该发送非常简单的电子邮件在大多数情况下失败,并显示错误“iisnode 在处理请求时遇到错误。HRESULT: 0x6d HTTP status: 500 HTTP subStatus: 1013”。奇怪的是,电子邮件每隔一段时间就会发送一次,但这种情况很少发生。大多数情况下,在发送带有错误的响应之前,请求将花费整整两分钟。
我应该注意到,在 localhost 中进行开发时,这两个测试一直都在工作,没有任何问题,只有在生产(部署到 azure)时才会发生这种情况。
过去几天我一直在四处挖掘,但一无所获。任何帮助或指示将不胜感激。