Node.js 如何在express/node中访问路由处理程序外部的req/res

Node.js 如何在express/node中访问路由处理程序外部的req/res,node.js,coffeescript,routes,Node.js,Coffeescript,Routes,非常简单,我正在将express/node应用程序中的路由映射到另一个模块中的方法。完成后,将调度一个事件。所有这些都很好,但如何在“on_products”事件处理程序中获得res 以下是总体思路: Routes = (app) -> eventbus.on 'on_products', -> res.send 'some products' #how do i get at res here? app.get '/products', (req,res) ->

非常简单,我正在将express/node应用程序中的路由映射到另一个模块中的方法。完成后,将调度一个事件。所有这些都很好,但如何在“on_products”事件处理程序中获得res

以下是总体思路:

Routes = (app) ->

  eventbus.on 'on_products', -> res.send 'some products' #how do i get at res here?

  app.get '/products', (req,res) ->  getProducts() 

module.exports = Routes

提前感谢。

您可以在触发事件时传递参数:

eventbus.emit 'on_products', res
并在事件处理程序中使用:

eventbus.on 'on_products', (res) ->
  res.send 'some products'

谢谢你,莱纳斯。我曾希望我可以引用res而不必传递它,因为它被传递了一整圈。服务最终分派控制器再次处理的事件。看来我得把res一路织回它的起始位置。布拉德:好的。我发现在没有看到代码的情况下很难对代码进行推理,但我认为如果不将其传递出去,就很难将响应保持在范围内。