keystonejs中间件和路由之间的通信

时间:2018-03-26 14:19:18

标签: node.js express keystonejs

我正在使用keystone并且我有productDetail路由,我可以在res.locals中添加变量以在模板中使用。有没有办法在middleware.js文件中使用res.locals(路由文件)?现在中间件正在路由之前执行,我希望首先执行路由文件。

这是中间件在index.js文件中执行的地方

keystone.pre('routes', middleware.initLocals);

之后我们

exports = module.exports = function(app) {
  // Views
  app.get('/', routes.views.index);
  app.get('/product-detail/:product', routes.views.productDetails);
}

1 个答案:

答案 0 :(得分:0)

我不确定我是否收到你的问题,但这可能有所帮助。您可以在<jsp:useBean id="user" class="beans.User" scope="session" > </jsp:useBean> <jsp:setProperty property="email" name="user" value="programmingtute.com"/> <jsp:setProperty property="password" name="user" value="abcdf"/> <jsp:useBean id="user" class="beans.User" scope="session" > <jsp:setProperty property="email" name="user" value="programmingtute.com"/> <jsp:setProperty property="password" name="user" value="abcdf"/> </jsp:useBean> (显然首先运行)之后运行所需的自定义中间件。在middleware.initLocals文件中,您可以拥有两个中间件:

routes/middleware.js

然后,在exports.middleware0 = function (req, res, next) { // Do some stuff next(); }; exports.middleware1 = function (req, res, next) { // Do some other stuff next(); }; 内,您可以将中间件链接在一起:

routes/index.js