介绍
Express.js 是一个流行的 Node.js Web 框架,它提供了很多有用的功能来帮助开发人员构建 Web 应用程序。其中两个非常有用的功能是 app.locals 和 res.locals。这两个功能允许开发人员在应用程序的不同部分中共享数据,以及在请求处理程序中设置本地变量。在本篇文章中,我们将探讨如何使用这两个功能。
app.locals
app.locals 是一个对象,用于存储应用程序级别的本地变量。这些变量在整个应用程序中都可以使用。例如,我们可以在 app.js 中设置一个本地变量:
const express = require('express'); const app = express(); app.locals.title = 'My App';
这个本地变量可以在任何路由处理程序中使用:
app.get('/', (req, res) => { res.render('index', { title: req.app.locals.title }); });
在上面的代码中,我们使用了 req.app.locals.title 来访问 app.locals 中的本地变量。
res.locals
res.locals 是一个对象,用于存储响应级别的本地变量。这些变量只在当前请求的生命周期中可用,而不是在整个应用程序中共享。例如,我们可以在路由处理程序中设置一个本地变量:
app.get('/', (req, res) => { res.locals.user = req.user; res.render('index'); });
在上面的代码中,我们在路由处理程序中设置了一个本地变量,并在渲染视图时使用它。我们可以在视图中访问这个变量:
<p>Welcome <%= user.name %>!</p>
总结
使用 app.locals 和 res.locals 可以帮助我们在 Express.js 应用程序中共享数据和设置本地变量。我们可以在应用程序级别和响应级别使用这些功能。在应用程序级别,我们可以设置全局变量,而在响应级别,我们可以设置请求特定的变量。这些功能可以帮助我们更好地组织我们的代码,并使其更易于维护。
示例代码
// javascriptcn.com 代码示例 const express = require('express'); const app = express(); // 设置应用程序级别的本地变量 app.locals.title = 'My App'; // 路由处理程序 app.get('/', (req, res) => { // 设置响应级别的本地变量 res.locals.user = req.user; // 渲染视图并传递本地变量 res.render('index', { title: req.app.locals.title }); });
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65878e1eeb4cecbf2dccbd63