node.js - 尝试运行 node-express 服务器来发送电子邮件并获得无限循环
问题描述
我正在尝试运行上述标题中的服务器,我似乎得到了一个无限循环,服务器每秒都在重新启动。请帮助并告诉我我做错了什么我是 node-express 的新手。
const express = require('express');
const app = express();
const router = express.Router();
const nodemailer = require('nodemailer');
const sendGridTransport = require('nodemailer-sendgrid-transport');
const { SENDGRID_API } = require('./config/keys');
// const PORT = process.env.PORT || 5000;
app.use(express.json());
const transporter = nodemailer.createTransport(
sendGridTransport({
auth: {
api_key:
'hidden',
},
})
);
const postMail = router.post('/send', (req, res) => {
const { data, ingredients, price } = req.body;
transporter
.sendMail({
to: 'hidden@hidden.com',
from: 'hidden@hidden.com',
subject: `הזמנה מ:${data.fullName}`,
html: `<h3>שלום יש לך הזמנה חדשה !</h3>
<p>פרטי משלוח:</p>
<p>שם:${data.fullName}</p>
<p>עיר:${data.city}</p>
<p>רחוב:${data.street}</p>
<p>טלפון:${data.phone}
<br></br>
<p>פרטי הזמנה:</p>
<p>כמות בשר:${ingredients.meat}</p>
<p>כמות פסטרמה:${ingredients.pastrama}</p>
<p>כמות סלט:${ingredients.salad}</p>
<br></br>
<p>סה"כ לתשלום:${price}</p>
<p>צורת תשלום:${data.checkbox ? 'מזומן' : 'ביט'}`,
})
.then(resp => {
res.json({ resp });
})
.catch(err => {
console.log(err);
});
});
app.use(postMail);
app.listen(3001);
解决方案
似乎 expressjs 框架没有正确处理错误
尝试
const postMail = router.post('/send', (req, res, next) => { // add `next` here!
const { data, ingredients, price } = req.body;
return transporter
.sendMail({
to: 'hidden@hidden.com',
from: 'hidden@hidden.com',
subject: `הזמנה מ:${data.fullName}`,
html: `<h3>שלום יש לך הזמנה חדשה !</h3>
<p>פרטי משלוח:</p>
<p>שם:${data.fullName}</p>
<p>עיר:${data.city}</p>
<p>רחוב:${data.street}</p>
<p>טלפון:${data.phone}
<br></br>
<p>פרטי הזמנה:</p>
<p>כמות בשר:${ingredients.meat}</p>
<p>כמות פסטרמה:${ingredients.pastrama}</p>
<p>כמות סלט:${ingredients.salad}</p>
<br></br>
<p>סה"כ לתשלום:${price}</p>
<p>צורת תשלום:${data.checkbox ? 'מזומן' : 'ביט'}`,
})
.then(resp => {
res.json({ resp });
})
.catch(next); // change from console.error HERE !!!
});
推荐阅读
- javascript - d3 each() .method 这个上下文使用 TypeScript
- python - 如何将光栅文件直接合并到 ENVI 或 LAN
- android - Android Firebase 云消息传递问题 - 仅当我在应用程序中断开/重新连接到互联网时才有效
- python - 选择查询运行时重命名表和索引的策略
- docker - dockerd 是否支持 WatchdogSec sd_notify 健康检查?
- php - 将子过滤器应用于弹性搜索中的术语的正确方法是什么?
- asp.net - 本地主机无法访问此站点在 Visual Studio 中运行 Web 应用程序
- chmod - chmod 结果“没有这样的文件或目录”
- javascript - 使用 react-router-dom 时延迟加载图像
- mysql - 将 Oracle 查询转换为 mySQL