一尘不染

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

node.js

将Express.js从版本2更新到了版本3,以下调用app.dynamicHelpers({..})中断了,因为它不再存在于V3中:

app.dynamicHelpers({

    request: function(req){
      return req
    },
    ...etc.
});

有一个迁移指南说:

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

但是我很困惑如何做到这一点。是否有一个更具体的示例说明如何进行迁移?

相关的SO post: Node.js Express3.0


阅读 213

收藏
2020-07-07

共1个答案

一尘不染

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

之前:

app.configure();
app.dynamicHelpers({
  user: function(req, res) {
    return req.session.user;
  }
});

后:

app.configure(function(){
  //...
  app.use(function(req, res, next){
    res.locals.user = req.session.user;
    next();
  });
  //...
});

对于Flash看看connect-flash

2020-07-07