方案是将数据保存在缓存中。我们有许多用复杂逻辑编写的快速路线。
我必须找到一种方法来将响应数据保存在缓存中。我不能去每一条路线,检查是否需要保存并在发送响应之前保存数据。 (如果没有其他去,那么这可能就是这样)
我尝试了以下方法。
希望有一个解决方案,我坚持了一个多星期。
为每个路由添加逻辑是一项繁琐的工作的原因是,我需要添加一个配置条目,指定需要缓存哪个路由以及到期时间。
需要在 redis服务器中缓存响应。将基于路由数据和查询字符串生成缓存密钥。所有这些完整的用户特定信息将保存在密钥中。
因此,当用户点击相同的路线时,将生成密钥以使用 app.use 检查密钥是否已存在,并且数据将在不预先添加的情况下提供连续的中间件。
答案 0 :(得分:0)
将回调中间件定义为
var storeResponseMiddleware = function(req, res, next) {
console.log("storing data in redis....")
..........more stuff
}
将它添加到expressJs app,
app.use(logicRoute)
app.use(storeResponseMiddleware)
现在,将调用所有响应storeResponseMiddleware
。你必须在路由处理程序中调用next()
。