在中间件之间传递信息以及将信息发送给模板时,推荐的命名空间。避免直接在 ctx 上加属性,这样可能会覆盖掉已有的属性,导致出现奇怪的问题。
ctx.state.user = await User.find(id);
这样后续在 controller 里可以通过 this.ctx.state.user
来获取对应的值。
module.exports = class extends think.Controller {
indexAction() {
const user = this.ctx.state.user;
}
}