Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Trả lại danh sách hgetall từ redis trong nodejs

Câu trả lời ngắn gọn là bạn không suy nghĩ không đồng bộ. Vì bạn đang sử dụng các hàm không đồng bộ trong hàm của mình, nên hàm của bạn cũng phải không đồng bộ.

Vì bạn không đăng phần còn lại của mã của mình, đây là ý tưởng cơ bản:

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
        });
    });
});

Hy vọng rằng điều đó sẽ giúp mọi thứ sáng tỏ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách làm mất hiệu lực các phần của hệ thống phân cấp (cây) dữ liệu trong bộ nhớ cache của Redis

  2. Các phiên được chia sẻ giữa các ứng dụng Node?

  3. Chia tỷ lệ Socket.IO thành nhiều quy trình Node.js bằng cách sử dụng cụm

  4. Làm lại, hết hạn phiên và tra cứu ngược

  5. Quét Laravel và redis