对session设置中all这个参数的疑问?

来源:3-7 介绍登录-koa2配置session

Bingyuan

2019-11-10

老师,应该是我基础比较差,但我这里是真的看不懂。

store:redisStore({
    all:`${REDIS_CONF.host}:${REDIS_CONF.port}`
  })

这个redisStore是我们引用的插件,我点击看了插件源码,对于这个redisStore,源码中是这样的:

declare function redisStore(options: redisStore.RedisOptions)

而这个RedisOptions又是扩展的ClientOps,再去追踪它,发现是这样的:

export interface ClientOpts {
    host?: string;
    port?: number;
    path?: string;
    url?: string;
    parser?: string;
    string_numbers?: boolean;
    return_buffers?: boolean;
    detect_buffers?: boolean;
    socket_keepalive?: boolean;
    socket_initialdelay?: number;
    no_ready_check?: boolean;
    enable_offline_queue?: boolean;
    retry_max_delay?: number;
    connect_timeout?: number;
    max_attempts?: number;
    retry_unfulfilled_commands?: boolean;
    auth_pass?: string;
    password?: string;
    db?: string | number;
    family?: string;
    rename_commands?: { [command: string]: string } | null;
    tls?: any;
    prefix?: string;
    retry_strategy?: RetryStrategy;
}

始终没找到这个all是什么意思,有点纠结,提问一下,如果暂时不理解不影响后续操作的话请告知一下。当然,其实这里我整个都是有点懵逼的,这里不理解对后续的影响大么,可以在后续的学习中逐渐理解么

写回答

1回答

双越

2019-11-10

第一,这份源码我没有仔细看过。不过看你提供的源码,“options: redisStore.RedisOptions” 意思是 options 要符合 redisStore.RedisOptions 数据类型。而你给的 interface 是 ClientOpts ,两者不对应。光看变量的命名,两者是没有关系的。

第二,这里不理解对后续学习没啥影响,我也不建议现在就纠结于细节甚至源码。这里的意思,就是配置 redis 的地址而已,并没有其他什么深意。只要你能理解我讲的 redis 是什么,以及 session 和 redis 的关系,就继续往下学习吧。

0
1
Bingyuan
嗯,是我中间少了一块。 `declare function redisStore(options: redisStore.RedisOptions)`中的RedisOptions是extend的`ClientOpts`的. ``` interface RedisOptions extends ClientOpts { duplicate?: boolean; client?: any; } ``` ------------ 回复竟然不支持markDown...
2019-11-10
共1条回复

Node.js+Koa2框架生态实战 - 从零模拟新浪微博

用 Koa2 做真正的实战项目,不再只是增删改查的小白工程师

964 学习 · 388 问题

查看课程