Я пытаюсь выполнить одну маршрутизацию взад и вперед по mongodb, но, похоже, на стороне клиента я не могу извлечь данные из обещания, полученного от $ ресурсов. На странице HTML есть кнопка, который нг нажмите на эту следующую функцию:Nodejs и экспресс-маршрутизация, как обрабатывать обещания на стороне клиента
$scope.getToken = function() {
console.log('$scope.getToken()');
authenticationService.getToken($scope.data.email).then(function(result) {
$scope.data.token = result;
});
}
В результате получили:
объект «м», с полями - 0: «J», 1: «6», 2: «o», 3: «p», 4: «E», 5: «7», 6: «X», 7: «t», $ prom: d, $ resolved: правда, прото: Object
Как вы можете видеть, что я получить маркер генерируется, база данных, кажется, работает хорошо и функция и также.
Служба на стороне клиента, что получить ответ имеет функцию:
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;
}
Функция на стороне сервера, который послал это:
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);
}
}
);
И в 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);
}
}
);
}
И в 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);
}
});
}
Почему серверная сторона отправляет ответ внутри объекта вместе с обещанием и как его обрабатывать?
Большое вам спасибо! отправка объекта обратно с серверной части обратно клиенту привела поле с принятым ответом! –