【问题标题】:Setting a handlebars helper to return a specific value per request in express设置车把助手以快速返回每个请求的特定值
【发布时间】:2013-06-24 11:15:34
【问题描述】:

我有一个基于 express 的应用程序,它从车把模板和一组主干资源提供服务器端呈现的 HTML。从理论上讲,客户端,应用程序类似于服务器端正在发生的事情。

这在开发中一切都很好,但是当节点服务器同时处理许多请求时,我们正在使用的助手被定义/重新定义的机制就会中断 - 我们设置助手(在这种情况下记录in / 未登录,但可以是任何东西)然后以异步方式处理其余请求 - 我们不知道也无法控制这需要多长时间。

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

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

这是一个测试用例的要点 - 希望能说明问题:

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

(如果我的目标不是很明显,只需在 cmets 中 ping 一下,我会写得更清楚)。

谢谢!

【问题讨论】:

    标签: node.js concurrency express handlebars.js


    【解决方案1】:

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

    我使用hbs (https://github.com/donpark/hbs) 为您的每个请求/渲染创建一个新的把手实例。

    【讨论】:

    • 是的,已经解决了 - 我想我正在寻找在不扩展 express 的情况下处理此类问题的技巧,并让现有的主干视图继续尽可能“正常”使用把手.这个扩展看起来很适合简单的东西,但对我们来说,我认为它不是一个好的解决方案。
    猜你喜欢
    • 2014-06-30
    • 2013-02-05
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多