req.body.name 未定义 - Nodemailer ejs
req.body.name is not defined - Nodemailer ejs
我看到了一些与我的很接近但不完全相同的问题,所以我的问题是我有一个带有 Form 属性的 ejs 模板,我想将输入发送到邮件,所以我用 name= 声明所有输入"xyz" 和 routes.get 内:req.body.conSurname, conName: req.body.conName,
。所以我的 post 路线看起来像这样。
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());
然后您的快速服务器将在接收到 Content-Type: application/json
header 请求时反序列化 JSON 主体,并且您的代码将正常工作。
我看到了一些与我的很接近但不完全相同的问题,所以我的问题是我有一个带有 Form 属性的 ejs 模板,我想将输入发送到邮件,所以我用 name= 声明所有输入"xyz" 和 routes.get 内:req.body.conSurname, conName: req.body.conName,
。所以我的 post 路线看起来像这样。
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());
然后您的快速服务器将在接收到 Content-Type: application/json
header 请求时反序列化 JSON 主体,并且您的代码将正常工作。