Javascript Nodejs如何在app.use上获取每个应用程序上的视图

Javascript Nodejs如何在app.use上获取每个应用程序上的视图,javascript,node.js,layout,response,local-variables,Javascript,Node.js,Layout,Response,Local Variables,我正试图通过cookies处理简单的用户信息,这些信息在我的布局中通过res.render可见,但我觉得这非常乏味,因为它们总是简单的信息,我必须在每个.get()中都这样做,然后在app.js中我做了以下操作: app.js app.use(function(req,res, next){ var cookies = req.cookies; if(!cookies.UserData){ console.log('cookies no exists'); } else{

我正试图通过cookies处理简单的用户信息,这些信息在我的布局中通过res.render可见,但我觉得这非常乏味,因为它们总是简单的信息,我必须在每个.get()中都这样做,然后在app.js中我做了以下操作:

app.js

app.use(function(req,res, next){
  var cookies = req.cookies;
  if(!cookies.UserData){
    console.log('cookies no exists');
  }
  else{
    console.log('cookies');
    res.locals.user = cookies.UserData;
    next();
  }

});
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});
layout.ejs

<%- user.username %>

但“user”并没有定义,而是在我的error.ejs中,当生成404时,我将它放入
中,它就工作了

但它只对404次捕获有效,而不是一般情况下,我做错了什么?我是怎么做到的

我是怎么解决的

在我的路由器级中间件中:

var express = require('express');
var router = express.Router();


router.use(function(req,res, next){
  var cookies = req.cookies;
  if(!cookies.UserData){
    console.log('cookies no exist');
  }
  else{
    console.log('cookies');
    res.locals.user = cookies.UserData;
    next();
  }
});
我首先将它放在路由器级中间件中,高于所有其他http方法


为404处理程序输入代码here@tbking好的,我把它放在堆栈溢出上,你们不把答案放在你们的问题里。提问是为了提问,回答是为了回答。如果你已经解决了你自己的问题,那么把解决方案写进你问题的答案中(是的,你可以回答你自己的问题)。请编辑您的问题以删除答案,并从标题中删除“已解决”部分-这不是堆栈溢出时的情况。您可以提交自己的答案,经过一段时间后,您可以接受自己的答案作为最佳答案,以向社区表明您现在有答案。@jfriend00您是对的,这听起来合乎逻辑,我会这么做。