CNode

express3中删除了helpers,用locals了,但是怎么用呢,只是换了名字么?尝试无果。

Kkongkang发布于14 年前最后回复14 年前14 回复7008 浏览0 收藏

RT

查看回复

回复 (14)

L
leizongmin#1·14 年前

设置了 app.locals 之后,每次执行 res.render() 时,都会默认加上app.locals里面的数据

G
gxmari007#2·14 年前

看官网文档差不多就是这个样子

app.configure(function() {
  app.use(express.csrf());
  //原来的dynamicHelpers
  app.use(function(req, res, next) {
    res.locals.csrf = req.session ? req.session._csrf : '';
    next();
  });
});
//原来的helpers
app.locals({ title: config.title });
D
darklowly#4·14 年前

这个我猜测是因为之前的设计,概念太多,这次精简了。是一次进步。

G
gxmari007#5·14 年前
G
gxmari007#6·14 年前
引用 peakzhuqqapp.use(function(req, res, next){ //res.locals.title = config['title'] //res.locals.csrf = req.s...
res.locals.success = req.success ? req.success : null;

话说我都不知道你写的是啥...

A
atian25#7·14 年前
引用 peakzhuqqapp.use(function(req, res, next){ //res.locals.title = config['title'] //res.locals.csrf = req.s...

你的req.success什么时候填值的?如果是在某个route里面, 那肯定没有,因为是先执行你这个middleware(相当于java的filter),在执行你的action的.

P
peakzhuqq#8·14 年前

谢谢大家! 就是想问res.locals是怎么用的,后来想来想去觉得他就像是个全局的变量。

A
atian25#9·14 年前
引用 peakzhuqq谢谢大家! 就是想问res.locals是怎么用的,后来想来想去觉得他就像是个全局的变量。

res.locals 是某次请求的服务器回复里面的变量吧, res = response , locals名字都是本地变量集合的意思了

A
alvis#10·14 年前

请问ejs中怎样使用res.locals定义的变数?

A
alvis#11·14 年前
引用 alvis请问ejs中怎样使用res.locals定义的变数?

发现了答案,使用locals.XXX就能取得res.locals.XXX= ...中设定的值

R
rekey#12·14 年前

这哥们儿到底想干嘛..

P
peakzhuqq#13·14 年前
app.use(function(req, res, next){
  //res.locals.title = config['title']
  //res.locals.csrf = req.session ? req.session._csrf : '';
  res.locals.req = req;
  res.locals.session = req.session;
  res.locals.error = req.error;
  res.locals.success = req.success;
  res.locals.docs = req.docs;
  next();
});//locals

我已经定义了success,但是为什么页面还报success没有定义呢?

ReferenceError: c:\node\project\microblog\views\layout.ejs:42
40|
41|                         <div id="container" class="container">

42| <% if (success) { %> 43| 44| <%= success %> 45|

success is not defined

P
papaivan#14·14 年前

我正在找这方面的内容呢

参与回复
登录后即可参与回复。登录