为了账号安全,请及时绑定邮箱和手机立即绑定

为什么expressjs在空闲时会为PUT生成ERR_EMPTY_RESPONSE?

为什么expressjs在空闲时会为PUT生成ERR_EMPTY_RESPONSE?

四季花海 2021-05-12 14:22:32
现在我有一个本地运行的Express服务器,用于管理来自React Client的请求。问题当我的客户端处于空闲状态时(我假设客户端PUT服务器之前已进行了操作),大约3-5分钟后,错误消息出现在控制台日志中。错误信息:这将导致服务器的下一个客户端PUT失败,即未保存数据。要求我在中间件管理方面没有太多经验,因此希望获得一些有关如何诊断可能导致此错误的帮助。可能有用的注意事项:有时,当客户端对服务器进行过多的PUT时,数据将无法保存,但是不会出现错误消息。我被迫重新加载页面。从客户端提取-App.js  saveData = data => {    console.log("Submitting request to save...");    fetch('/api/v1/savedata', {      method: 'PUT',      headers: {        'Accept': 'application/json',        'Content-Type': 'application/json'      },      body: JSON.stringify(data)    })    .then(console.log("Save complete!"));  };从Server.js中提取:// An api endpoint that saves data from the clientapp.put('/api/v1/savedata', (req,res) => {  console.log('Server received request to saveData');  let options = {    files: './data/save.json',    changes: req.body  }  updateJsonFile(options);});
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您没有在API中发送任何响应,请使用res.send或res.json类似这样:


app.put('/api/v1/savedata', (req,res) => {

  console.log('Server received request to saveData');

  let options = {

    files: './data/save.json',

    changes: req.body

  }

  updateJsonFile(options);

  res.json({data: data}) // if you want to send json response

  // Note: please don't send response object more than once

});


查看完整回答
反对 回复 2021-05-27
  • 1 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信