节点电子邮件表单成功消息

node email form success message

本文关键字:消息 成功 表单 电子邮件 节点      更新时间:2023-09-26

我想在邮件发送成功时显示一条成功消息。我有一个html表单,张贴到服务器与文件。是否有一种方法可以将数据从服务器发送到客户端?我会使用express或ajax来处理表单提交,但我不能让这些工作与文件上传-我可以让我的文件上传的唯一方法是通过html表单。

客户

<form enctype="multipart/form-data" action="/email" method="post">
     <input type="text" name="name" class="form-control" id="name">
     <!--code below uploads file -->
     <input type="file" 
            style="visibility:hidden; width: 1px;" 
            id='${multipartFilePath}' class="res" name='userFile' onchange="$(this).parent().find('span').html($(this).val().replace('C:''fakepath''', ''))"  /> <!-- Chrome security returns 'C:'fakepath''  -->
    <input class="btn btn-default btn-file" type="button" value="Attach File" onclick="$(this).parent().find('input[type=file]').click();"/>
    <button type="submit" class="btn btn-xl">Send Message</button>
</form>
服务器

app.post('/email', function(req, res) {
    var toSend = req.files;
    res.status(204).end()
    sendEmail(req.body, toSend);//email is sent successfully
    /***Here I want to send data back to client with either a success or error message text***/
    res.send('help');
});

基本上,我需要帮助弄清楚在客户端接受res.send的位置,考虑到我用html表单发送了我的帖子请求。电子邮件正在正确发送,但我不知道如何在这种情况下向客户端返回一串文本。

问题是您正在发送status().end(),然后以res.send('help')结束该函数。您不能在res上执行end()函数,然后再尝试发送另一个响应。