express中怎么全局使用变量?

这样一个问题,我用express做的后端,用户登陆成功以后想把用户的基本信息存起来,其它接口可以直接用,按照最简单的拿到用户信息后可以存到Request里面,这样谁都可以用了,问题是我这的路由这块是这样写的,每次都是循环出来的,那样的方法行不通,谁有更好的办法?

AppRoutes.forEach(route => {
        route.path=api+route.path
        app[route.method](route.path,(request: Request, response: Response, next: Function) => {
            route.action(request, response , next)
                .then(() => next)
                .catch(err => next(err));
        });
    });
阅读 2.8k
3 个回答

登录成功以后把用户信息放到session里,express-session;
或者更好的做法是放到redis里

客户端登录成功服务端返回一个token,另起一个接口查询用户信息的,客户端在路由守卫里面判断当前是否存在用户信息,如果不存在请求这个查询用户信息的接口

3种办法

  1. 就是你目前使用的方法,保存在某个其它地方能访问到的对象属性上
  2. 新建一个模块使用闭包保存
  3. 使用redis等其它持久层