sql >> Database teknologi >  >> NoSQL >> MongoDB

Får mongoose.js-forespørgsler til at køre synkront

Hvis du bruger node.js, skal du bruge https://github.com/caolan/async

når du skal hente data fra flere samlinger, skal du sammenkæde dine forespørgsler flere gange.

Det vil gøre din kode kompleks og svær at læse og ingen modularitet. Brug async til at skabe modularitet ved hjælp af mongodb og node.js

Eksempelkode fra mit projekt :

var async = require('async');

var createGlobalGroup = function(socket, data) {
    async.waterfall(
    [
    /**
     * this function is required to pass data recieved from client
     * @param  {Function} callback To pass data recieved from client
     */

    function(callback) {
        callback(null, socket, data);
    },
    /**
     * Step 1: Verify User
     */
    verifyUser,
    /**
     * Step 2: Check User Access Rights And Roles
     */
    checkUserAccessRightsAndRoles,
    /**
     * Step 3: Create Project
     */
    createNewGlobalGroup], function(err, result) {
        /**
         * function to be called when all functions in async array has been called
         */
        console.log('project created ....')
    });
}
verifyUser = function(socket, data, callback) {
//do your query
    /**
     * call next function in series
     * provide sufficient input to next function
     */
    callback(null, socket, data, {
        "isValidUser": true,
    });
}

checkUserAccessRightsAndRoles = function(socket, data, asyncObj, callback) {
    //do your query
    if(condition) {
        callback(null, socket, data, {
            roles: result,
            "isValidUser": asyncObj.isValidUser,
            "userId": asyncObj.userId,
        });
    } else {
    //no call back
    }
}

var createNewGlobalGroup = function(socket, data, asyncObj, callback) {
//wanna stop then no callback
}


  1. Rækkebaseret personsøgning mongodb

  2. Indlejrede arrays i Mongoose

  3. Samlet $lookup med C#

  4. Har nogen prøvet CouchDB og forskellige offline implementeringer (PouchDB)?