Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Zwróć listę hgetall z redis w nodejs

Krótka odpowiedź brzmi, że nie myślisz asynchronicznie. Ponieważ używasz funkcji asynchronicznych w swojej funkcji, Twoja funkcja również musi być asynchroniczna.

Ponieważ nie opublikowałeś reszty kodu, oto podstawowa idea:

var client = require('redis').createClient();

function createMobs(callback) {
    var mobObject = { name: 'Goblin' };

    client.hmset('monsterlist', 'mobs', JSON.stringify(mobObject), function(err) {
        // Now that we're in here, assuming no error, the set has went through.

        client.hgetall('monsterlist', function(err, object) {
            // We've got our object!

            callback(object);
        });

        // There is no way to run code right here and have it access the object variable, as it would run right away, and redis hasn't had time to send you the data yet. Your myMobs function wouldn't work either, because it is returning a totally different function.
    });
};

app.get('/create', function(req, res) {
    createMobs(function(object) {
        res.render('mobs.jade', {
            mobs: object
        });
    });
});

Mam nadzieję, że pomoże to wyjaśnić sprawy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. jak zaimportować plik danych .csv do bazy danych Redis

  2. Hosting ScaleGrid dla Redis™ na własnym koncie AWS

  3. Redis hash bardzo niska prędkość zapisu

  4. Wiele kluczy wskazujących na pojedynczą wartość w Redis (pamięć podręczna) za pomocą java

  5. Używać wielu baz danych z jednym skryptem Redis Lua?