app.locals and res.locals life cycle

前端 未结 1 1250
余生分开走
余生分开走 2020-12-12 17:00

I\'m really confused by app.locals and res.locals because I don\'t know WHEN should I use them and how? And actually I want to know the app.l

1条回答
  •  爱一瞬间的悲伤
    2020-12-12 17:12

    You can consider app.locals to be global. Some examples of things you might want to store in app.locals: URL helpers, application-level constants. You should put anything here that you want accessible in every single view.

    res.locals stores data only for a particular response (which responds to a particular request). For example, GET /something will create a new res.locals that gets passed through all the middleware responding to '/something.' Appropriate information here is stuff like authenticated user details from your question.

    The lifecycle looks like this, where your responsibilities are bold (everything else is done for you by express):

    1. app is created (var app = express();)
    2. app.locals is created
    3. request arrives
    4. res.locals is created for that request
    5. you add things to res.locals like user roles (res.locals.role = 'admin';)
    6. you serve a response to the request (res.render('some/view');)
    7. res.locals for that request is garbage collected, gone
    8. app.locals continues to exist as long as the app exists

    0 讨论(0)
提交回复
热议问题