跳到主要内容
CNode

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

社区
Kkongkang发布于 14 年前最后回复 14 年前
1470390

RT

查看回复

回复 (14)

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

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

A
alvis#1314 年前

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

P
papaivan#1214 年前

我正在找这方面的内容呢

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

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

P
peakzhuqq#1014 年前

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

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

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

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

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

P
peakzhuqq#714 年前
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

R
rekey#614 年前

这哥们儿到底想干嘛..

G
gxmari007#514 年前
D
darklowly#414 年前

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

G
gxmari007#214 年前

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

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 });
L
leizongmin#114 年前

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

参与回复

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