MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Nodejs Mongoose - jak uniknąć piekła zwrotnego?

Możesz użyć łańcucha q obietnica w nodejs

var Q = require('q');

function findOne(filter) {
    return Q.Promise(function(resolve, reject) {
        Character.findOne(filter, function(err, character) {
            resolve({
                err: err,
                character: character
            });
        });
    });
}

function update(data) {
    return Q.Promise(function(resolve, reject) {
        character.update(data, function(err, characterID) {
            resolve({
                err: err,
                characterID: characterID
            });
        });
    });
}

findOne({ name: 'Sam' }).then(function(data) {
    if (!data.err) {
        // now you can update it.
        return update(data.character);
    } else {
        throw new Error(data.err);
    }
}).then(function(data) {
    if (!data.err) {
        // now you can update it.
        return update(data.characterId);
    } else {
        throw new Error(data.err);
    }
    return findOne({ id: characterId });
}).then(function(data) {
    if (!data.err) {
        // now you can update it.
        return update(data.character);
    } else {
        throw new Error(data.err);
    }
}).catch(function(error) {
    // Handle any error from all above steps
}).done();


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wyświetlić dowolne, schematyczne dane w HTML za pomocą node.js / mongodb

  2. Znajdź według identyfikatora lub nazwy użytkownika w mongo

  3. Agregacja MongoDB, czy istnieje sposób na uzyskanie stanu wykonania z zagregowanego kursora?

  4. próbuję wyświetlić dane w nefrycie z mongodb

  5. MongoDb $addFields i $match