2017-01-21 11 views
0

Я использовал для плагина catbox-redis, но когда я запустил код, я получил отключенную ошибку. Когда я искать, где я получаю эту ошибку, я обнаружил, что он доносился из Catbox Lib client.js isReady функцииCatbox-redis показывает отключенную ошибку в моем приложении hapijs

Если какой-либо об этом, пожалуйста, помогите мне

{ 
    method : 'POST', 
    path : "/signup", 
    config : { 
     tags  : ['api'], 
     description : 'Customer signup', 
     validate : { 
      failAction: Relish.failAction, 
      options : { 
       abortEarly: false, 
      }, 
      payload : signupSchema, 
     } 
    }, 
    handler: function(request, response){ 
     let responseData = { 
      'message': 'Data inserted', 
      'errors': [], 
      'data': [ 
       { 
        'id': 'name' 
       } 
      ] 
     }; 

     const options = { 
      //partition: 'examples',    // For redis this will store items under keys that start with examples: 
      host: '127.0.0.1',     // If you don't supply, 127.0.0.1 is the default 
      port: 6379,      // If you don't supply, 6379 is the default 
      password: ''       // If you don't supply, auth command not sent to redis 
     }; 

     var client = new Catbox.Client(require('catbox-redis'), options); // Chance require('../') to 'catbox-redis' when running in your project 
     client.start((error) => { 
      console.log('Cache server started'); 
      console.log('---------------------------------'); 
     }); 

     const key = { 
      segment: 'example', 
      id: 'myExample' 
     }; 

     const cacheValue = 'my example'; 
     const ttl = 10000;       // How long item will be cached in milliseconds 

     client.get(key, (err, cached) => { 

      if (err) { 
       console.log(err); 
      } 
      else if (cached) { 
       return callback(null, 'From cache: ' + cached.item); 
      } 

      client.set(key, cacheValue, ttl, (error) => { 

       if(error) 
        console.log(error); 
       console.log("Cache was set on the redis"); 
       console.log('---------------------------------'); 
      }); 
     }); 


     return response(responseData); 
    } 
} 
+0

Вы не тестируете ошибку в функции client.start? Кроме того, я не стал бы запускать клиент redis внутри обработчика, но через плагин. –

+0

В функции client.start я не получил никаких ошибок. И я начну redis в плагине только в настоящее время, я проверяю, как это, чтобы легко понять – Sivabalan

ответ

0

Наконец я обнаружил, что. Потому что async, когда мой redis начнет процесс, мой redis попытается получить ключ. Теперь я положил это на обратный вызов redis get function в redis start, все работает нормально