sách gpt4 ăn đã đi

javascript - express 4。 app.locals、res.locals 和 req.app.locals 之间有什么区别?

In lại 作者:搜寻专家 更新时间:2023-10-31 22:55:34 33 4
mua khóa gpt4 giày nike

我在使用 express 4 时很困惑。我使用 express-generator 来生成我的项目。根目录下有app.js,路由器文件有index.js。但是网上关于express的教程都是直接在app.js中使用router。因此,当我想在 index.js(在路由器文件中)中设置一些变量时,我使用 app.locals,但它不起作用。但是当我换成其他两个时,我的 ejs 模板就可以工作了……我很困惑。谁能告诉我它们之间的区别以及如何正确使用,好吗?



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

....

router.get('/', function(req, res, next) {
var _user = req.session.user;
if (_user) {
//does't work!!
//app.locals.user=_user;
//I am not sure about which usage is correct below
//1.
req.app.locals.user = _user;
//2.
// res.locals.user=_user;
}
}



<% if (user) { %>
  • Welcome <%= user.name %>

  •  | 
  • Logout

  • <% } else { %>
  • 登录

  •  | 
  • 注册

  • <% } %>

    câu trả lời hay nhất

    • app.locals object 是一个 JavaScript 对象,它的属性是应用程序中的局部变量。

      app.locals.title
      // => 'My App'
      app.locals.email
      // => 'me@myapp.com'

      一旦设置,app.locals 属性的值将在应用程序的整个生命周期中持续存在

    • 与仅在请求的生命周期内有效的 res.locals 属性相反。当您处理具有 độ phân giải 对象的路由时,那里不会有 app 对象,反之亦然 app.locals

      <
    • 您可以访问应用程序中呈现的模板中的局部变量。这对于为模板以及应用程序级数据提供辅助函数很有用。局部变量可通过 req.app.locals 在中间件中使用(参见 req.app )

      app.locals.title = 'My App';
      app.locals.strftime = require('strftime');
      app.locals.email = 'me@myapp.com';

    下图来自Node.js In Action一书,描述了app.localres.local的区别

    nhập mô tả hình ảnh ở đây

    关于javascript - express 4。 app.locals、res.locals 和 req.app.locals 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35111143/

    33 4 0
    Chứng chỉ ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
    Xem sitemap của VNExpress