我有一个简单的node.js应用程序使用快速静态和nodemailer与一个帖子形式,电子邮件填充的字段给我自己。我的问题很简单,我对Node非常陌生,所以我找不到办法去做。
我的第一个问题是,我找不到一种方法,把所有的表单数据到电子邮件的文本。下面,我尝试将我的表单数据存储在JSON中,并在电子邮件文本中调用它,但是它不起作用。只有当我只使用一个变量(例如,前)时,它才对我有效。只有req.body.name)的文本。如何在电子邮件中格式化我的数据?
我的第二个问题是,在发送电子邮件后,我可以找到一种处理应用程序的方法。我希望它重定向到一个成功的页面,如标记行所示,但它不起作用。相反,该页面转到/reqform并显示一条错误消息,说明success.html不存在(它与我的html文件位于同一个公用文件夹中)。我相信问题在于我的sendFile使用,但我不确定。
app.post('/reqform', urlencodedParser, function (req, res) {
response = {
name: req.body.name,
email: req.body.email,
phone: req.body.phone
};
var mailContent = {
from: 'myemail@gmail.com',
to: 'myemail@gmail.com',
subject: 'Service Request From req.body.name',
text: response //*** Problem #1
};
transporter.sendMail(mailClient, function (error, info) {
if (error) {
console.log(error);
} else {
res.sendFile("success.html"); //** Problem #2
}
});
})任何帮助都是非常感谢的。谢谢!
发布于 2017-10-23 01:40:59
"[object Object]"的默认字符串值。如果你想要其他的东西,你就必须具体说明你想要如何表示它。
例如,JSON是一种文本/字符串格式,表示类似于对象的值。它与对象本身是独立的,因此需要进行转换才能使用它:
变量mailContent ={ // .正文:JSON.stringify(回复)}
或者,提供您自己的格式:
变量mailContent ={ // .文本:Name: ${response.name}\nEmail: ${response.email}\nPhone: ${response.phone} }res.redirect(),允许客户机/浏览器通过应用程序的static()中间件请求success.html:
Res.redirect(‘/use.html’);
res.sendFile()不与任何static()中间件协作来了解public文件夹。它希望您直接或使用它的root选项提供完整的路径:
res.sendFile(path.join(__dirname,‘public/test.html’));https://stackoverflow.com/questions/46880465
复制相似问题