node.js - 如何始终禁用 Chrome 网络缓存

标签 node.js reactjs google-chrome caching developer-tools

我正在测试我的应用程序 - 我已经使用 Node 和 Express 编写了后端,并使用 React 编写了前端。

我不是在模拟慢速网络 - 但我实际上正处于慢速网络中。

有时,使用 axios 的 xhr 请求 - 我已经在代码中编写了 实际上不起作用 - 因为网络请求缓存。

当我在单独的窗口中打开 Chrome 开发者控制台并选中“禁用缓存”按钮时,它工作得很好。

如何在不打开开发者控制台的情况下在 Chrome 中始终强制执行此“禁用缓存”。

还有其他浏览器有这个功能吗?

最佳答案

最好的方法是禁止直接从服务器缓存请求。很可能您不希望 API 调用被缓存。

const router = require('express').Router();

// Set no cache headers to ensure browsers (especially IE) don't cache the API requests
router.use((req, res, next) => {
    res.setHeader('Expires', '-1');
    res.setHeader('Cache-Control', 'no-cache');
    next();
});

这应该位于您的 Express 应用程序的顶部,s.t.所有请求都会传递到此过滤器。此外,如果您希望缓存某些请求,只需将它们写入此处理程序上方即可。

关于node.js - 如何始终禁用 Chrome 网络缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47036227/

相关文章:

node.js - 当 VsCode 中没有检测到 "problems"时,这些 AngularCli 错误意味着什么?

reactjs - 使用 React-Snapshot 预渲染静态文件创建 React 应用程序

javascript - 当我调用 React.useState() 返回的更新函数时会发生什么?

html - Firefox/Chrome 上的字体大小和缩进不一致

node.js - 通过 NPM 安装 Browsersync 时权限被拒绝

javascript - Node.JS - 处理某些类型的 promise 拒绝?

javascript - react 映射函数未返回的无状态组件

css - 与用户代理样式表 css 作斗争

html - Firefox 不支持 mediastreamtrack.getsources,如何做等效的

mysql - Sequelize hasMany 工作正常,但反比关系不起作用