javascript - req.body.name 未定义 - Nodemailer ejs
问题描述
我看到了一些与我很接近但不完全相同的问题,所以我的问题是我有一个带有 Form 属性的 ejs 模板,我想将输入发送到邮件,所以我用 name="xyz" 声明所有输入并在里面路线.get req.body.conSurname, conName: req.body.conName,
:. 所以我的帖子路线看起来像这样。
router.post('/contact/send', (req, res) => {
// Nodemailer
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'abc@gmail.com',
pass: '******'
}
});
const mailOptions = {
from: 'abc@gmail.com',
to: 'def@gmx.de',
subject: 'New Mail',
html: '<h2>Mail from: '+ req.body.conSurname + ' ' + conName + '</h2>'
};
transporter.sendMail(mailOptions, function (err, info) {
if (err)
console.log(err)
else
console.log(info);
});
res.redirect('/contact');
})
如果我发送公式,它会抛出 ReferenceError: conSurname is not defined 但如果我记录一个属性,它会向我显示来自输入的正确值。错误在哪里?
解决方案
那是因为你必须像这样导入 json 中间件:
var express = require('express');
var app = express();
app.use(express.json());
然后,您的 express 服务器将在接收带有标头的请求时反序列化 JSON 正文Content-Type: application/json
,并且您的代码将正常工作。
推荐阅读
- python - 如何在 statsmodel ols 回归中包含滞后变量
- php - 使用 MailGun API - Yii2 中的批量发送
- php - 有或没有服务容器的链式过滤器的实例化
- linux - linux如何拦截未经授权的进程访问文件,使用FUSE(cryfs或gocryptfs)
- android - App Actions 是否支持其他非英语语言环境
- mongodb - MongoDB:根据条件从文档列表中选择文档
- c++ - 将对象移动到 unique_ptr
- mysql - SQL查询以查找员工的报告员
- python - Discord 频道会员只返回一名会员?
- javascript - 为什么这个标签在 sendgrid 内的 html 标签内不起作用?