Node.js 当来自外部api的内容发生更改时,是否应重新启动节点以更新缓存视图

Node.js 当来自外部api的内容发生更改时,是否应重新启动节点以更新缓存视图,node.js,caching,restart,Node.js,Caching,Restart,我有一个节点应用程序运行我的博客,我的内容来自外部api。我使用express,目前使用dust模板,默认情况下缓存视图。然而,显然没有办法在不重新启动节点的情况下清除缓存的文件 当我更新博客帖子时,我重启节点是正常的还是我做错了什么 我有一个webhook,所以我可以对内容更改采取行动,我只是不知道我该怎么做。如果你的博客文章存储在数据库中,express将只缓存你的html模板,但会用信息填充你的视图。 如果你的博客文章是新的;每次打开l页时,我想您都需要重新启动nodejs服务器。但在ex

我有一个节点应用程序运行我的博客,我的内容来自外部api。我使用express,目前使用dust模板,默认情况下缓存视图。然而,显然没有办法在不重新启动节点的情况下清除缓存的文件

当我更新博客帖子时,我重启节点是正常的还是我做错了什么


我有一个webhook,所以我可以对内容更改采取行动,我只是不知道我该怎么做。

如果你的博客文章存储在数据库中,express将只缓存你的html模板,但会用信息填充你的视图。 如果你的博客文章是新的;每次打开l页时,我想您都需要重新启动nodejs服务器。但在express配置模板配置中,我认为您可以选择停用缓存。 和/或您可以使用pm2或nodemon在每次更改时重新启动NodeJ,这并不是最好的方法


PS:OUP谈论很多不同的方式,忘记你有来自API的内容。所以我想你可以移除你的灰尘。我重新启动nodejs的唯一时间是在更新javascript/nodejs代码时。

不幸的是,您需要重新启动服务器,但需要修改express配置以在将来禁用视图缓存。 只需添加以下内容:

var app = express();
app.disable('view cache'); //app: is express

嗯,好吧,我认为视图缓存通常是非常有益的,所以停用它对我来说听起来不太好。如果你说它应该只存储html而不存储内容,那听起来有点像我在做我的模板错了。从PHP开始,我习惯于只替换缓存视图,所以这个概念在node中并不存在?我从未使用过dust,所以我不确定它如何处理缓存。但是使用ejs、swig或其他,它们只是缓存完整的html,模板中的所有参数都应该替换为从路由/控制器发送到模板引擎的值。实际上,我遇到了一个问题,内容缓存在其他地方。您描述的缓存行为是正确的。