我試圖做一個單一的路由來回mongodb,但它似乎在客戶端,我無法檢索數據從收到的承諾$資源。 在HTML頁面還有誰已經NG-點擊此以下功能的按鈕:Nodejs和快速路由,如何處理客戶端承諾
$scope.getToken = function() {
console.log('$scope.getToken()');
authenticationService.getToken($scope.data.email).then(function(result) {
$scope.data.token = result;
});
}
接收到的結果是:
對象 「M」,與田 - 0: 「J」, 1:「6」,2:「o」,3:「p」,4:「E」,5:「7」,6:「X」,7:「t」,$ promise:d,真的,原:對象
正如你可以看到我收到生成的標記,該數據庫似乎做工精細,功能INV也是。
上接收答案的客戶端的服務有一個功能:
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);
}
});
}
爲什麼服務器端在承諾的對象內發送答案,我應該如何處理?
非常感謝!從服務器端返回一個對象返回給客戶端,導致一個字段含有接收到的響應! –