首页 > 解决方案 > 以原始方式多次发送相同的请求。有些返回状态码 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 状态码

标签: expresshttp-status-code-204

解决方案


我曾经遇到过同样的问题。根据我的经验,当在很短的时间内向服务器发送多个请求时,有时服务器无法回答所有请求。取决于服务器能力。您是否尝试通过仅发送一次返回 204 的请求并查看它们是否仍返回 204 来检查这一点?如果是这样,即使连续发送请求,服务器也已正确响应。但是,如果服务器一次发送一个内容时返回的内容为 200,那么问题可能出在服务器一次处理多个请求时。


推荐阅读