Redis Connection + Singleton + Node.js - PullRequest
0 голосов
/ 16 мая 2018

Я использую Redis для хранения сессий в моем проекте.

В app.js

var client  = redis.createClient();

client.on('error', function (err) {
  console.log('could not establish a connection with redis. ' + err);
});
client.on('connect', function (err) {
  console.log('connected to redis successfully');
});

В моих routes.js файлах я должен получить всю информацию от Redis, поэтому я использую следующее:

var client = redis.createClient();

client.on('error', function(err){
  console.log('Something went wrong ', err)
});

Но каждый раз, когда он подключается к Redis. Как я могу подключить Redis один раз в моем app.js и использовать его везде. пожалуйста, предложите идеи. Заранее спасибо.

EDIT

app.js

module.exports.client = client;

routes.js

var client = require("../app.js").client;
client.hgetall();

Но я получаю error

TypeError: Cannot read property 'hgetall' of undefined

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

app.js

    const redis = require('redis'),
redisClient = redis.createClient(6379, '127.0.0.1');
const http = require('http');

const REDIS_USER_DATA_INDEX = 2;

redisClient.select(REDIS_USER_DATA_INDEX);

module.exports.client = redisClient;

rout.js

    const app = require('./app');

app.client.on('connect', function () {
    console.log('redis connected');
    console.log(`connected ${app.client.connected}`);
}).on('error', function (error) {
    console.log(error);
});

Я надеюсь, что это решит вашу проблему.Спасибо

0 голосов
/ 16 мая 2018

In app.js

var client  = redis.createClient();

client.on('error', function (err) {
  console.log('could not establish a connection with redis. ' + err);
});
client.on('connect', function (err) {
  console.log('connected to redis successfully');
});

module.exports = { client }

In routes.js

var { client } = require('./app');

client.on('error', function(err){
  console.log('Something went wrong ', err)
});

(при условии, что app.js и routes.js находятся на одном уровне каталога)

РЕДАКТИРОВАТЬ: исправлено несколько опечаток

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...