如何将 Expressjs 中的动态变量传递给所有 Pug 模板?

Dav*_*vid 1 express pug

如何将 app.js 中的动态变量传递给我的所有 Pug 模板文件?

Sri*_*m J 5

Javascript对象app.localsres.locals可以解决你的问题。

app.locals对象是 JavaScript 对象,其属性是应用程序内的局部变量。

app.locals.title = 'My App';
Run Code Online (Sandbox Code Playgroud)

res.locals仅在请求的生命周期内有效的属性。当你处理有 res 对象的路由时,那里不会有 app 对象,反之亦然。

app.use(function (req, res, next) {
   res.locals.user = req.user || null;
   next();
});
Run Code Online (Sandbox Code Playgroud)

您可以访问呈现的模板中的局部变量,这对于向模板以及应用程序级数据提供辅助函数非常有用。本地变量可通过中间件使用req.app.locals(请参阅req.app

您可以通过以下方式访问 pug 中的对象: html body h1 Hello World!

    if user != null
        p Hi there, #{user}!
    else
        p Hi there, unknown person!
Run Code Online (Sandbox Code Playgroud)