首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >成功post请求后http-proxy-中间件econnreset错误

成功post请求后http-proxy-中间件econnreset错误
EN

Stack Overflow用户
提问于 2020-08-25 01:47:27
回答 1查看 1.2K关注 0票数 1

按照本教程https://www.youtube.com/watch?v=o3eR0X91Ogs,使用Nodejs/Express和create-react-app开发联系人表单。我遇到的问题是,当我点击表单上的提交时,邮件会成功,并且我会在我的收件箱中得到它。然而,在开发人员控制台中,我遇到了我在Contact.js中的axios.post上设置的超时错误,在我的终端中,它记录了位于index.js中的message sent,控制台日志,随后立即抛出了以下错误:

代码语言:javascript
运行
复制
HPM ERROR: Error: socket hang up
[1]     at connResetException (internal/errors.js:612:14)
[1]     at Socket.socketCloseListener (_http_client.js:443:25)
[1]     at Socket.emit (events.js:326:22)
[1]     at TCP.<anonymous> (net.js:673:12) {
[1]   code: 'ECONNRESET'
[1] }
[1] [HPM] Error occurred while trying to proxy request /api/contact/ from localhost:3001 to http://localhost:3000/ (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)

有没有人知道为什么会发生这个错误,以及我如何修复它?消息发送后挂起,这会阻止应用程序状态重置(resetForm)。同时,Contact.js中的axios.post不会将sent的状态更新为true。

The Github repo for the project.

编辑:我已经坚持了几天了。查看了类似的问题,尝试了我能找到的所有修复方法,但此错误仍然存在。

EN

Stack Overflow用户

回答已采纳

发布于 2020-08-29 07:15:00

这是对ExpressJs响应如何工作的一个常见误解。如果你不对请求发送响应,它将永远被卡住。所以你所要做的就是发送一个响应!此外,在sendMail函数的回调中重新定义了res变量。修复方法如下:

代码语言:javascript
运行
复制
  app.post('/api/contact', (req, res) => {
  // ...
  smtpTransport.sendMail(mailOptions, (err, mailResponse) => {
    if(err) {
      console.log(err);
    } else {
      console.log('Message sent!');
    }
    smtpTransport.close();
    return res.send(err ? err : 'Message sent!');
  });
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63566162

复制
相关文章

相似问题

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