2017-02-03 3 views
0

Ich habe einen NodeJS Export wie dieseNodeJS exportieren Rückkehr nicht Wert

exports.add = function(req){ 

    var newUser = new User({ 
     email: req.body.email, 
     password: req.body.password, 
    }); 

    // Attempt to save the user 
    newUser.save(function(err) { 
     if (err) { 
      return true; 

     } 
     return false; 
    }); 

} 

Aber es gibt so undefiniert, wenn ich die Funktion wie diese

Instanz
var value = instance.add(req); 

Hier nennen ist die importierte Instanz des javascript Datei

+2

Mögliches Duplikat von [Wie gebe ich die Antwort von einem asynchronen Aufruf zurück?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- Anruf) –

Antwort

0

Wie in den Kommentaren von @Ben Fortune erwähnt, konnte man nicht einfach einen Wert von einem asynchronen Funktionsaufruf zurückgeben.

Der Rückruf Weg:

exports.add = function (req, callback) { 

    var newUser = new User({ 
     email: req.body.email, 
     password: req.body.password, 
    }); 

    // Attempt to save the user 
    newUser.save(function(err) { 
     if (err) { 
      callback(err, null); 
     } 
     callback(null, newUser.toJSON()) ; 
    }); 

} 

Dann:

instance.add(req, function(err, value) { 
    if (err) throw err; 
    // use value here 
}); 

Mehr lesen: How do I return the response from an asynchronous call? Und implementieren Versprechen Art und Weise, wenn Sie es vorziehen, sollten Sie Rückrufe oder Versprechen verwenden .

Verwandte Themen