node.js - 有时 GET 返回 304 而不是 200

标签 node.js

我正在使用 Node.js 和 mongodb。

我有时似乎收到 200,其他时候则收到未修改的 304。

router.get('/add-to-bag/:id', (req, res, next) => {
    req.session.bag.push(req.params.id);
    res.redirect('back');
    });
});

最佳答案

我无法确定您使用什么堆栈来创建应用程序。看起来您正在使用 Express.js 进行路由。不过,我可以告诉您为什么会收到 304。

来自维基百科:

304 Not Modified (RFC 7232)
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.[24]

304 表示“嘿,还记得我发送给您的最后一个答案吗?它没有改变”,因此您的浏览器将重播从缓存收到的最后一个响应,而不会发生数据传输。

这意味着您的数据正在被添加。但由于包中的数据完全相同,服务器不会再次给出完全相同的数据 200,而是发出 304。

顺便说一句:您的 API 不是 Restful。我建议使用 POST 创建新记录,而不是向不同的 URL 发出 GET。我建议阅读 REST API 设计。一旦你掌握了它的窍门,它就非常简单了。

关于node.js - 有时 GET 返回 304 而不是 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789233/

相关文章:

node.js - Express:使用ejs时找不到静态文件

javascript - 修复错误: Cannot read property 'path' of undefined

node.js - 将 semver 版本与波浪号/插入符进行比较

node.js - 如何在 NodeJS 中创建动态下拉菜单?

javascript - setInterval 返回定时器对象而不是 intervalId

javascript - 使用 Moment.js 根据时间间隔计算 nextDueDate

node.js - 为什么 Safari 和 Chrome 上的 Socket.io 连接速度慢

javascript - Node.js 会继续支持旧版本的 Node 模块吗

ios - 使用node appium-xcuitest-driver测试ios应用程序

node.js - package.json 用于全局依赖项