函数不从服务器返回值给客户端
function not returning value to client from server
我有一个使用 mongoose 访问 mongodb 的函数,数据库调用有效并出现在控制台中,但它没有 return 该数组。想不通为什么。
exports.getPrices = function() {
return Price.find().exec(function (err, docs) {
if (err) {
return err;
}
console.log(docs);
return docs;
});
};
来自服务的调用
angular.module('core')
.factory('Machineprice', [ '$http',
function($http) {
return {
getPrices:function(){
return $http.get('/getPrices')
}
};
}
]
);
控制器
angular.module('core').controller('MachinePricingController', ['$scope','Machineprice',
function($scope, Machineprice) {
$scope.prices = Machineprice.getPrices();
console.log($scope.prices);
}
]);
它不起作用,因为 getPrices()
异步运行,这意味着它不会立即 return 结果。该函数 return 是一个 promise,这意味着必须在回调函数中处理结果。
The $http service is a function which takes a single argument — a
configuration object — that is used to generate an HTTP request and
returns a promise.
要使其正常工作,您必须更改控制器的代码。
angular.module('core').controller('MachinePricingController', ['$scope', 'Machineprice',
function ($scope, Machineprice) {
Machineprice.getPrices().then(function (response) {
$scope.prices = response.data;
console.log($scope.prices);
});
}]);
我有一个使用 mongoose 访问 mongodb 的函数,数据库调用有效并出现在控制台中,但它没有 return 该数组。想不通为什么。
exports.getPrices = function() {
return Price.find().exec(function (err, docs) {
if (err) {
return err;
}
console.log(docs);
return docs;
});
};
来自服务的调用
angular.module('core')
.factory('Machineprice', [ '$http',
function($http) {
return {
getPrices:function(){
return $http.get('/getPrices')
}
};
}
]
);
控制器
angular.module('core').controller('MachinePricingController', ['$scope','Machineprice',
function($scope, Machineprice) {
$scope.prices = Machineprice.getPrices();
console.log($scope.prices);
}
]);
它不起作用,因为 getPrices()
异步运行,这意味着它不会立即 return 结果。该函数 return 是一个 promise,这意味着必须在回调函数中处理结果。
The $http service is a function which takes a single argument — a configuration object — that is used to generate an HTTP request and returns a promise.
要使其正常工作,您必须更改控制器的代码。
angular.module('core').controller('MachinePricingController', ['$scope', 'Machineprice',
function ($scope, Machineprice) {
Machineprice.getPrices().then(function (response) {
$scope.prices = response.data;
console.log($scope.prices);
});
}]);