Tag: caching控制

如何在Express – Node.js上主动caching?

我如何在Express上激活caching来快速提供页面? 谢谢

NodeJS具有内存压力感知的内存caching

我来自Java世界,并且有很多(本地)内存caching的实现。 而且在Java世界里有SoftReference和WeakReference ,根据定义,它们是caching实现的理想select。 我知道,JavaScript没有类似的东西,所以我想知道是否有可能有某种cachingfunction,如果有“低内存压力”,将删除/释放(所有)caching对象。 到目前为止,我知道lru-cache模块,但是它的实现保存了一些数目/大小的对象,这很好,但还不够好,因为如果没有足够的内存。 当进程内存不足时,甚至有可能从系统中获取NodeJS中的一些事件? 或者也许有些图书馆可能引发一个事件,例如: var cmmm = require('cool_memory_management_module'); cmmm.on('low_memory', function(){ //signaling to clear cache entries }); 到目前为止,我已经find了npm memwatch和npm使用模块,但仍然无法将所有这些组件结合在一起。

使用Node.jscaching数据库查询

是否有一个纯粹在Node.js中写入的数据库(mysql)查询caching的实现? 我正在编写一个Node web应用程序,并计划使用memcachedcaching查询,但在考虑这一点时,我意识到可能通过一个单独的Node.js层实现caching 解释: 您可以通过单独的端口上的节点服务器查询数据库,从可用的内存中返回数据,并将其加载到内存中。 任何人都知道Node.js在散列数组上的返回速度如何与memcache比较? 这是一个pipe道梦还是我应该看的东西?

中继/ GraphQL架构caching不更新时,我更新架构在服务器端

我有一个使用中继和远程GraphQL服务器的React应用程序。 当我启动webpack服务器时,我把它取出最新的模式,并将其input到babel-relay-plugin中。 它工作得很好,除非我进行模式更改。 看来React或Relay或者webpack或者某些东西在caching模式,因为当我运行这个应用程序的时候,我将在浏览器控制台中得到一个Schemavalidation错误。 但是,当我使用GraphIQL对GraphQL服务器手动运行查询时,查询成功。 所以它将不得不在反应,继电器,webpack方面我想的某种caching? 我试过的东西: 项目清单 重新启动webpack服务器 删除node_modules和npm install 我甚至尝试重新启动我的电脑(这似乎工作,但可能是巧合) 在此先感谢您的帮助。

快递+请求中途更改标题

我使用express作为我的服务器,并请求从上游框中检索内容。 我有这个漂亮简单的函数来将数据从上游stream传输到客户端: function(req, res){ request("http://example.com").pipe(res); } 上游方框正在返回caching头Cache-Control: no-cache我想修改Cache-Control: no-cache ,以便Nginx(反向代理)可以caching响应。 我应该在哪里放res.header('Cache-Control', 60); ? 我试过了: function(req, res){ var retrieve = request("http://example.com"); retrieve.on('data', function(chunk){ if(res.get('Cache-Control') != 60) res.header('Cache-Control', 60); }); retrieve.pipe(res); } 但是这会引发Error: Can't set headers after they are sent错误Error: Can't set headers after they are sent 。 是否有一个侦听器在发送头文件时触发,但是在writeHeader()之前?

如何在特定的目录上连接/表示使用不到期的caching

我正在开发一个使用connect / express和node.js的应用程序。 它使用这样的“静态”中间件: var express = require("express"); var io = require("socket.io"); var app = express.createServer( express.static(__dirname + '/static') ); app.listen(process.env.PORT || 8080); var listener = io.listen(app); var lobby = listener.of("/lobby"); lobby.on("connection", function (socket) { // etc etc etc }); 在./static ,有一个文件夹,./ ./static/mp3 ,包含了应用程序使用的88个audio文件。 尽pipe返回的访问者已经caching了这些文件,但是我仍然坚信,他们仍然会发送88个http请求来询问他们的caching副本是否过期。 我如何才能执行Expires或max-agecaching,只有这个文件夹?

express.static()caching文件在内存中吗?

在ExpressJS for NodeJS中,我们可以执行以下操作: app.use(express.static(__dirname + '/public')); 为所有的静态CSS,JS和图像文件提供服务。 我的问题是这些: 1)当我们这样做时,Express会自动caching服务器内存中的文件,还是每次提供其中一个资源时都从硬盘读取? 2)当我们这样做的时候,Express是否默认使用ETag,将资源保存在客户端的硬盘上,还是只保存在客户端的内存上?

MongoDB和Redis作为caching层架构

假设我们有一个社交networking应用(使用NodeJS,Express)和MongoDB作为主数据库引擎。 在大多数来自客户端(移动应用程序,Web应用程序等)的API调用中,我不想为每个请求进行复杂的查询。 例如,这些请求可以从caching层回复,例如Redis。 但我的问题是如何/何时应该更新caching层,因为所有写操作都在MongoDB数据库中执行,而不是caching层(Redis)。 解决这个问题的正确方法/架构是什么?

简单的方法来将caching清单添加到meteor应用程序?

我想通过caching清单使Meteor(meteor.com)应用程序加载而不连接到meteor服务器(离线)。 我想在这里已经提出了一个类似的问题: 如何将一个caching清单添加到Meteor应用程序? 但我不能按照他们的解决scheme(更多在这下面)。 有没有一种简单的方法在Meteor应用程序中包含caching清单,并使用所有的meteor资源填充清单? 从相关的post我的问题是: 你可以通过绑定到:bundle.css和bundle.js.client获得一个完整的css和js文件列表 涉及到“挂钩”这些文件是什么? 我应该如何继续? buffer.files.client_cacheable ['manifest.appcache'] = new Buffer(manifestcontent); 这是做什么,它应该去哪里? 然后你可以编辑/app/lib/app.html.in来添加引用 这只是在html标签中的manifest="/application.manifest"位?

使用RequireJScaching特定模块

这个问题已经被问了好几次,但并不特定于这个例子。 这里是我们的应用程序的概述: 使用Express on Node进行简单的服务器路由 单页面主干应用程序 核心模块和库(JS / CSS)不变 Widget JS / LESS / HTML文件经常改变 在开发过程中,我正在寻找caching的文件,但不是这些核心库,以加快我的页面重新加载,并加快我的发展。 我find了解释: 在RequireJScaching破坏 – 在这里 caching清除特定模块的说明 – 这里 可以解决scheme: 解释一下requireJScaching是如何工作的? 为此特定场景提供解决scheme。