Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

एक्सप्रेस Node.JS - रेडिस कॉलबैक प्राप्त करना, वादों को क्रियान्वित करना

मैंने यह पता लगा लिया। मैंने क्लाइंट के बजाय सभी कार्यों को करने के लिए क्यू लाइब्रेरी का उपयोग किया। मल्टी ()। निष्पादन ()। इसने सभी रेडिस पोस्ट कमांड के एक साफ निष्पादन की अनुमति दी और फिर मुझे जानकारी प्राप्त करने की अनुमति दी।

रूट्स.जेएस फ़ाइल में, मेरे पास केवल एक संक्षिप्त कोड था। सब कुछ डॉक्टरडीबी.जेएस फ़ाइल में निष्पादित होता है।

मार्ग.जेएस

app.post('/addDoctorInfo', ensureLoggedIn('/login'), function(req, res, next){
        return doctorDB.addDoctor(req.body.id, req.body.doc, req, res, next);
});

doctorDB.js

var addDoctor = function addDoctor(id, doc, req, res, next){
    var fields = Object.keys(doc.fields);

    function middleName(id, doc){
        if (doc.middleName){ return client.hset(id, "middleName", doc.middleName); }
        else { return; }
    }

    return Q.all([Q.ninvoke(client, 'sadd', 'Doctors', id),
                    Q.ninvoke(client, 'hmset', id, "lastName", doc.lastName, "firstName", doc.firstName, "email", doc.email, "university", doc.university, "work", doc.work),
                    Q.ninvoke(client, 'sadd', id + ':fields', fields),
                    middleName(id, doc)]).then(function(x){
                        return getInfo(id, req, res, next);;
                    }, function (err) { res.status(404); });
};

यह फ़ंक्शन getInfo() को पास किया जाता है जो क्लाइंट पक्ष को प्रतिक्रिया भेजता है:

var redisHGetAll = Q.nbind(client.hgetall, client);

var getInfo = function getInfo(id, req, res, next){
    return redisHGetAll(id).then(function(x){
        return findByMatchingProperties(x);
    }, function (err) { res.status(404); }).then(function(){
        return client.smembers(id + ':fields', function(err, reply){
            data['fields'] = reply;
            res.setHeader('Content-Type', 'application/json');
            res.end(JSON.stringify(data));
        });
    }, function (err) { res.status(404); })
};

function findByMatchingProperties(x) {
    for (var y in x){
        checkData(y, x[y]);
    }       

    function checkData(y, z){
        for (var d in data){
            if (d === y){
                data[d] = z;
            }
        }
    }
}

var data = {
    lastName: null,
    firstName: null,
    middleName: null,
    email: null,
    university: null,
    work: null,
    fields: null
};



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्या हाइबरनेट-रेडिस विभिन्न हाइबरनेट उदाहरणों द्वारा साझा किए गए दूसरे स्तर के कैश का समर्थन करता है

  2. कॉन्फ़िगरेशन फ़ाइल के साथ रेडिस-सर्वर प्रारंभ करें

  3. लारवेल:रेडिस उपलब्धता की जांच कैसे करें?

  4. अजगर के साथ रेडिस डेटाबेस में सभी कुंजियाँ प्राप्त करें

  5. इस जीवेंट प्रोग्राम में रेडिस से केवल एक ही कनेक्शन क्यों बनाया गया था?