相关疑难解决方法(0)

如何在 Angular Universal 中配置缓存

我按照教程将 Universal 集成到我们的 Angular 9 应用程序中。现在我们已经配置了 server.ts。

在每个教程中我都会看到:

// Example Express Rest API endpoints
// app.get('/api/**', (req, res) => { });
Run Code Online (Sandbox Code Playgroud)

进而:

server.get(
        '*.*',
        express.static(distFolder, {
            maxAge: '1y',
        })
    );
Run Code Online (Sandbox Code Playgroud)

如果我们像这样保留它,我想每个请求都会被缓存,/api 的内容也会被缓存。这是正确的吗?我们的应用程序有很多“产品页面”,其中库存和价格可能会经常变化。因此,我们需要始终拥有新鲜的库存和价格。因此,我不会缓存从“/api/”路径(或https://api.my-app.com “,如果需要绝对路径)中的 API 调用返回的服务器数据。保留所有内容如果我没记错的话,上面写的应该缓存所有内容。我做了一个测试,直接在数据库中更改价格,我希望看到旧的价格,但事实并非如此,我总是看到新鲜的。所以我怀疑是缓存机制不起作用。而且当我浏览组件时,我继续看到每个 api 调用(未缓存)

有人可以更好地解释一下这个机制吗?

另一个问题是:如果缓存有效,如何在节点中清除它?节点将所有内容缓存在内存中。我认为当我们停止节点时缓存会被清除。这是正确的吗?

这是我的包 json:

"scripts": {
    "ng": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng",
    "start": "npm run ng -- serve",
    "serve:server": "node ./dist-server/main.js",
    "serve:server:debug": "node --inspect ./dist-server/main.js",
    "start:server": "npm run build:server && node ./dist-server/main.js",
    "start:server:debug": "npm run build:server && node ./dist-server/main.js --inspect",
    "build": "npm run ng …
Run Code Online (Sandbox Code Playgroud)

caching node.js angular-universal angular

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×1

angular-universal ×1

caching ×1

node.js ×1