首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非常简单的Node.js邮寄表格查询

非常简单的Node.js邮寄表格查询
EN

Stack Overflow用户
提问于 2017-10-23 00:27:47
回答 1查看 145关注 0票数 0

我有一个简单的node.js应用程序使用快速静态和nodemailer与一个帖子形式,电子邮件填充的字段给我自己。我的问题很简单,我对Node非常陌生,所以我找不到办法去做。

我的第一个问题是,我找不到一种方法,把所有的表单数据到电子邮件的文本。下面,我尝试将我的表单数据存储在JSON中,并在电子邮件文本中调用它,但是它不起作用。只有当我只使用一个变量(例如,前)时,它才对我有效。只有req.body.name)的文本。如何在电子邮件中格式化我的数据?

我的第二个问题是,在发送电子邮件后,我可以找到一种处理应用程序的方法。我希望它重定向到一个成功的页面,如标记行所示,但它不起作用。相反,该页面转到/reqform并显示一条错误消息,说明success.html不存在(它与我的html文件位于同一个公用文件夹中)。我相信问题在于我的sendFile使用,但我不确定。

代码语言:javascript
复制
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
        }
    });
})

任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-23 01:40:59

  1. JavaScript对象"[object Object]"的默认字符串值。如果你想要其他的东西,你就必须具体说明你想要如何表示它。 例如,JSON是一种文本/字符串格式,表示类似于对象的值。它与对象本身是独立的,因此需要进行转换才能使用它: 变量mailContent ={ // .正文:JSON.stringify(回复)} 或者,提供您自己的格式: 变量mailContent ={ // .文本:Name: ${response.name}\nEmail: ${response.email}\nPhone: ${response.phone} }
  2. 在这种情况下,最好使用res.redirect(),允许客户机/浏览器通过应用程序的static()中间件请求success.html: Res.redirect(‘/use.html’); res.sendFile()不与任何static()中间件协作来了解public文件夹。它希望您直接或使用它的root选项提供完整的路径: res.sendFile(path.join(__dirname,‘public/test.html’));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46880465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档