将Express.js 2迁移到3,特别是app.dynamicHelpers()到app.locals.use?

pro*_*ype 18 node.js express

更新了Express.js从版本2到3,以及随后的调用app.dynamicHelpers({..})打破,因为它不再出现在V3中:

app.dynamicHelpers({

    request: function(req){
      return req
    },
    ...etc.
});
Run Code Online (Sandbox Code Playgroud)

有一个迁移指南说:

  • app.dynamicHelpers() (使用中间件+ res.locals)

但我很难过如何做到这一点.有没有更具体的例子来说明如何迁移?

相关SO帖子: nodejs express 3.0

noo*_*taf 28

我有同样的问题session.user,只是通过了解该app.use功能必须是固定的,配置的一部分,而不是其原来的位置.

之前:

app.configure();
app.dynamicHelpers({
  user: function(req, res) {
    return req.session.user;
  }
});
Run Code Online (Sandbox Code Playgroud)

后:

app.configure(function(){
  //...
  app.use(function(req, res, next){
    res.locals.user = req.session.user;
    next();
  });
  //...
});
Run Code Online (Sandbox Code Playgroud)

对于Flash,请看一下connect-flash


D4t*_*ech 6

16票的解决方案是正确的,但res.localsapp.use(app.router);参考这篇文章之前一定要使用作业 /sf/answers/881841131/