请求上下文与请求相关,每个请求都有属于自己的请求上下文,可以理解为请求级别的共享变量就可以存放在请求上下文中,这样就可以方便不同的业务方法共享请求级别的全局变量,比如 cookie 和 session 会放到请求上下文中,方便用户在自定义的中间件或者业务代码中获取。

获取请求级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. Context.getAttr('foo', AttributeScope.Request);

设置请求级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. const foo = Context.setAttr('foo', 'bar', AttributeScope.Request);

获取 Session 级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. Context.getAttr('foo', AttributeScope.Session);

设置 Session 级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. const foo = Context.setAttr('foo', 'bar', AttributeScope.Session);

获取应用级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. Context.getAttr('foo', AttributeScope.App);

设置应用级别变量

  1. import { Context } from '@malagu/web/lib/node';
  2. const foo = Context.setAttr('foo', 'bar', AttributeScope.App);

获取 Cookie

  1. import { Context } from '@malagu/web/lib/node';
  2. const foo = Context.getCookies().get('foo');

设置 Cookie

  1. import { Context } from '@malagu/web/lib/node';
  2. Context.getCookies().set('foo', 'bar');

获取 Session

与上面的取 Session 方式等效

  1. import { Context } from '@malagu/web/lib/node';
  2. const foo = Context.getSession().foo;

设置 Session

与上面设置 Session 方式等效

  1. import { Context } from '@malagu/web/lib/node';
  2. Context.getSession().foo = 'bar';