как сделать, чтобы приложение express.js подключалось к redis только 1 раз, когда приложение запускается без использования global? - PullRequest
0 голосов
/ 17 января 2019

Я хотел бы подключиться к клиенту Redis только 1 раз при запуске моего экспресс-приложения, но я не хочу использовать global.

Как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 22 января 2019

Вы можете использовать класс Singleton для инициализации Redis и подключения к Redis.
Например: -

var redis = require('redis');
class Redis {
    constructor() {
         this.host = process.env.REDIS_HOST || 'localhost'
        this.port = process.env.REDIS_PORT || '6379'
        this.connected = false
        this.client = null

    }
   getConnection() {
        if(this.connected) return this.client
        else {
           this.client =  redis.createClient({
                host: this.host,
                port: this.port
            })
            return this.client
        }

    }
}

// This will be a singleton class. After first connection npm will cache this object for whole runtime.
// Every time you will call this getConnection() you will get the same connection back
module.exports = new Redis()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...