Express框架中,在进行用户登录的时候,需要把用户的名字传递到 网页头部,由于头部是单独分离出来的模板(header.art),无法单独传递一个模板参数去设置,只能通过app.locals 去传递全局变量
const app = express();
req.app.locals.info = email //用户名字传递到全局变量,登录之后把email设置全局变量,所有模板都可以访问
header.art模板
{{ info?info:'Login'}} 此处拿到info变量
1、运行后发现,浏览器1访问登录后,app.locals.info = XX1@qq.com ,是可以显示:XX1@qq.com,
2、当浏览器2(模拟第二个用户)请求反过来的时候,app.locals.info还是XX1@qq.com(用户2没有单独设置app.locals)
1、我的理解按照express的框架,每个请求都是独立的(单个线程),第一个用户访问后设置的app.locals是吧变量设置在app上了(app启动后是失效的),只要是app启动了,下面的所有线程都是可以修改app.locals变量的
当每个请求过来的时候传递一个全局变量(给头部模板访问,请求之间互相不干扰,不然我要每个路由都写传递一个变量,实在太麻烦了),如何实现呢?百度了很久都没有想要的答案