express - 以原始方式多次发送相同的请求。有些返回状态码 204,有些还可以
问题描述
我连续多次向同一个 url 发送 post 请求。一些请求返回 200 状态码,一些返回 204 表示没有内容。该请求更新了 mongo 数据库中的一些内容。我不知道这是否相关。什么可能导致这个问题?
我的 index.js:
app.post('/updatetrialsession',authenticateJWT ,(req,res)=>{
User.findOne({username:req.user.username}).then(user=>{
var trialIdx=user.examTrials.findIndex(it=>it.trialId===req.body.trialId)
var questionIdx=req.body.questionIdx
if(trialIdx!==-1){
user.examTrials[trialIdx].questions[questionIdx]=req.body.question
user.examTrials[trialIdx].currentQuestion=questionIdx+1
user.examTrials[trialIdx].countDown=req.body.countDown
user.examTrials[trialIdx].numOfSolved=req.body.numOfSolved
var filter={
'username':user.username
}
var update={
$set:{
'examTrials':user.examTrials
}
}
User.findOneAndUpdate(filter,update).then(user=>{
console.log('updated')
res.json({
status:"success"
})
})
}
})
})
注意:所有请求都转到此 URL“/epdatetrialsession”。当每个请求之间有 20 秒的间隔时,一切正常。但是当服务器每 2 秒左右收到一个请求时,有些请求会返回 204 状态码
解决方案
我曾经遇到过同样的问题。根据我的经验,当在很短的时间内向服务器发送多个请求时,有时服务器无法回答所有请求。取决于服务器能力。您是否尝试通过仅发送一次返回 204 的请求并查看它们是否仍返回 204 来检查这一点?如果是这样,即使连续发送请求,服务器也已正确响应。但是,如果服务器一次发送一个内容时返回的内容为 200,那么问题可能出在服务器一次处理多个请求时。
推荐阅读
- php - PHP Google Sheets API v4 从前一行获取所有格式(条件、日期等)并应用于新行插入的最有效方法?
- google-chrome - Chrome DevTools 不再看到远程设备
- ios - UIControlSegment 背景颜色在 iOS13 上不再透明
- python - Pandas 到 pyspark cumprod 函数
- c# - 如何将所有 404 URL 路由到 ASP .NET 中的视图或页面
- python - 如何在python中使用正则表达式拆分字符串?
- flutter - 运行时出现颤振错误:等待调试连接时出错:错误状态:无元素
- json - 使用 jq 从 JSON 中获取值
- c - 在 system() 中正确处理信号
- docker - 前端 [在 docker 容器中运行] 无法访问 ASP.Net 核心 API [在另一个容器中运行]