设置把手助手以在express中按请求返回特定值

时间:2013-06-24 11:15:35

标签: node.js concurrency express handlebars.js

我有一个基于快速的应用程序,用于从服务器模板提供服务器端呈现的HTML,以及一组骨干资源。理论上,客户端,该应用程序类似于服务器端发生的事情。

这在开发中都很好,但是当节点服务器同时处理许多请求时,我们使用的帮助程序定义/重新定义的机制中断 - 我们设置帮助程序(在这种情况下记录)在/未登录,但可能是任何事情)然后服务其余的请求异步发生 - 我们不知道,也无法控制这需要多长时间。

我已经发现这是因为服务器上的Handlebars实际上是全局的 - 因此每次请求进入时,被调用的帮助程序都是从那里开始的,请求之间是一个共享对象。

问题是,如何能够为每个返回该特定值的异步请求设置一个帮助程序,并且不会被并发请求污染......?

以下是测试用例的要点 - 希望能够显示问题:

https://gist.github.com/dazld/023df6e1da7a92387720

(如果从我的目的来看并不明显,只需在评论中ping,我会写清楚的东西)。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为您使用Handlebars的单个实例并且有很多请求将您的一个请求与另一个请求进行污染。

我使用hbshttps://github.com/donpark/hbs),因为它会为每个请求/渲染创建一个新的把手实例。