首页 > 解决方案 > Node JS 后端在第一次请求时返回状态码 304

问题描述

我有一个节点 JS 后端,每次我重新启动应用程序时,它都会在回答我对该后端发出的第一个请求时返回状态代码 304。我已经阅读了有关状态码 304 的信息,据说这意味着请求正在获取的内容没有改变,但是,由于我在第一个请求中得到 304,我的前端实际上并没有任何有用的数据需要处理,因为它是自应用程序启动以来提出的第一个请求。我试图禁用电子标签和类似的东西,但实际上没有任何帮助,因为我无法在第一个请求中获得任何数据。

节点JS代码如下:

router.get('/results', async function(req,res){
    const authHeader = req.headers.authorization;
    const results = [];
    for (let i = 1; i < 11; i++) {
        results.push({evaluation: i, total: 0, equipamentos: []});
    }

    if(authHeader){
        const token = authHeader.split(' ')[1];
        await jwt.verify(token, accessTokenSecret, async (err, user) =>{
            if(err){
                return res.sendStatus(403)
            }
            const db_form = client.db("mavideobo").collection("form");
            await db_form.find( {owner: jwt.decode(token).username}).toArray(function (err, result) {
                if (err) {
                    res.send(err);
                } else {
                    result.forEach(formAnswer => {
                        results[formAnswer.Evaluation - 1].total++;
                    })
                }
            })
            res.status(200).json(results);
        })
    }else{
        res.sendStatus(401);
    }
})

反应函数如下:

const getResultsData = async () => {
        setData([]);
        await fetch("/api/form/results", {
            headers: {
                Authorization: `Bearer ${sessionStorage.getItem("authToken")}`,
                "Content-Type": 'application/json',
                "Accept": 'application/json'
            }
        }).then(response => {response.json() 
            console.log(response)})
            .then(res => {
                let listResults = [];
                for (let i in res) {
                    listResults.push(res[i]["total"])
                }
                setData(listResults);
            }).catch(function (error) {
            console.log(error);
        });
    }

标签: node.jsreactjsresthttp-status-code-304

解决方案


推荐阅读