Ich versuche, eine einzige Routing hin und her zu tun, um zu MongoDB, aber es scheint, dass auf der Client-Seite kann ich die Daten nicht aus dem Versprechen abrufen, die von $ Ressource. Auf der HTML-Seite gibt es eine Taste, die auf diese folgende Funktion hat ng Sie auf:NodeJS und Express-Routing, wie Client-Seite zu behandeln versprechen
$scope.getToken = function() {
console.log('$scope.getToken()');
authenticationService.getToken($scope.data.email).then(function(result) {
$scope.data.token = result;
});
}
Das Ergebnis erhalten ist:
Objekt "m", mit Feldern - 0: "j", 1: "6", 2: "o", 3: "p", 4: "E", 5 "7", 6: "X", 7: "t", $ Versprechen: d, aufgelöst $: wahr, Proto: Object
Wie man sehen kann ich das Token generiert erhalten, scheint die Datenbank in Ordnung und die Funktion inv zu arbeiten oking auch.
Der Service auf der Client-Seite, die die Antwort erhalten hat eine Funktion:
function getToken(userEmail) {
var deferred = $q.defer();
$resource(baseUrl + '/getToken').save({
email : userEmail
}, function(result, error) {
if(result) {
deferred.resolve(result);
}
else {
deferred.reject(error);
}
});
return deferred.promise;
}
Die Funktion auf der Server-Seite, die diese gesendet:
var router = require('express').Router();
var authenticator = require('../utils/authUtils');
router.post('/getToken', function(request, response) {
authenticator.getToken(
function(error, result) {
if(error) {
//handle error
}
else if(result) {
response.json(result);
}
}
);
Und in authUtils.js:
var mongoUtils = require('./mongoUtils');
getToken : function(callback) {
var genToken = randToken.generate(8);
mongoUtils.query(COLLECTIONS.TOKENS, {'token': { $eq: genToken } },
function(error, result) {
if((result && result.length) || error) {
//handle error or duplicates
}
else if(result) {
callback(null, genToken);
}
}
);
}
Und in MongoUtils:
query : function(collectionName, query, callback) {
_db.collection(collectionName).find(query).toArray(function (error, result) {
console.log('Utils.query');
if(error) {
//handle error
}
else {
callback(error, result);
}
});
}
Warum die Server-Seite innerhalb eines Objekts die Antwort sendet zusammen mit dem Versprechen, und wie soll ich damit umgehen?
Vielen Dank! das Zurücksenden eines Objekts von der Serverseite zurück zum Client ergab ein Feld mit der empfangenen Antwort! –