Javascript 为什么expressjs在空闲时为PUT生成ERR\u EMPTY\u响应?
当前 我有一个本地运行的express服务器,用于管理来自react客户端的请求 问题 当我的客户机空闲时(我假设在客户机之前执行服务器操作之后),大约3-5分钟后,控制台日志中会出现错误消息 错误消息: 这会导致下一个客户端放入服务器失败,即数据未保存 请求 我在中间件管理方面没有太多经验,因此希望您能帮助我诊断可能导致此错误的原因 可能有帮助的注意事项:Javascript 为什么expressjs在空闲时为PUT生成ERR\u EMPTY\u响应?,javascript,express,middleware,put,Javascript,Express,Middleware,Put,当前 我有一个本地运行的express服务器,用于管理来自react客户端的请求 问题 当我的客户机空闲时(我假设在客户机之前执行服务器操作之后),大约3-5分钟后,控制台日志中会出现错误消息 错误消息: 这会导致下一个客户端放入服务器失败,即数据未保存 请求 我在中间件管理方面没有太多经验,因此希望您能帮助我诊断可能导致此错误的原因 可能有帮助的注意事项: 有时,当客户机向服务器输入太多数据时,数据无法保存,但没有错误消息。我被迫重新加载页面 从客户端提取-App.js saveData=d
saveData=data=>{
log(“提交保存请求…”);
获取(“/api/v1/savedata”{
方法:'放',
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(数据)
})
。然后(console.log(“保存完成!”);
};
从Server.js中提取:
//保存客户端数据的api端点
app.put('/api/v1/savedata',(req,res)=>{
log('服务器收到保存数据的请求');
让选项={
文件:'./data/save.json',
更改:请求正文
}
updateJsonFile(选项);
});
如果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
});
我猜您在put指令中缺少res.send()。因此,3-5分钟通常是浏览器的超时时间。就是这样。我需要通过.json()或send()或end()结束会话。谢谢,就是这样。我需要通过.json()或send()或end()结束会话。非常感谢。