node.js express3.0 dynamichelper 说是不能用了
发布于 1年前 作者 tofrookie 575 次浏览

官网说是改成locals,到底怎么用啊 各位求教

9 回复

没人知道吗,我现在有这样一个功能,每个页面都要加载一个同样的菜单 类似header,footer,这两个我用的是include,但是这个菜单是动态生成的 应该怎么做

render的时候带上菜单的参数,然后再在模板文件中获取渲染就好了吧?

获取渲染?麻烦是什么意思

@tofrookie 就是在菜单的模板文件中循环取出菜单的数据,然后渲染出来就好了吧

@thesadboy我有很多页面,你意思是在每个页面的render都带这个参数,然后再在ejs获得 这样吗?

@thesadboy不知道你有没有写过php,我想要的就是类似于php zf框架的 view helper

@tofrookie 假设你有很多的页面的菜单都是一样的,只有部分页面不同,那么你就可以先设置

app.use(function(req, res, next){
  res.locals.menus = {
  //此处为共同的菜单数据
  };
});

再针对特殊页面进行单独的render传入参数就行了

res.render('xxxx',{
  menus : {
  //这里是你单独的菜单数据
  }
});

这样应该是可行的,没试过,呵呵,另,木有写过php哦。

@thesadboy首先,先谢谢你啦 app.use(function(req, res, next){ res.locals.menus = { //此处为共同的菜单数据 }; }); 这段代码放哪呢,我的数据是从数据库读的,如果放app.js我觉得不太好 放route里到是可以,但我的route里现在是没读数据库的

@tofrookie

app.use(function(req, res, next){
  res.locals.menus = {
  //此处为共同的菜单数据
  };
});

这段代码就是放到app.js中的,当然了,你也可以将你的menu数据放到session中,然后在这里来把数据取从session中取出来就行了吧,仅供参考,呵呵

回到顶部