Angularjs 来自Angular服务的MEANJS服务器控制器调用
图片中有三个模型用户、用户详细信息、订单。我想根据userId顺序获取userDetails 模型用户详细信息: 型号订单: 我删除了图片中的一些属性以使其简短 我在服务器控制器上有一个远程方法Angularjs 来自Angular服务的MEANJS服务器控制器调用,angularjs,node.js,mongodb,mongoose,meanjs,Angularjs,Node.js,Mongodb,Mongoose,Meanjs,图片中有三个模型用户、用户详细信息、订单。我想根据userId顺序获取userDetails 模型用户详细信息: 型号订单: 我删除了图片中的一些属性以使其简短 我在服务器控制器上有一个远程方法 exports.userdetailByUserID = function(req, res,id) { //var userId = new ObjectId(id); Userdetail.find({ user : req.params['userId'] }).exec(function(er
exports.userdetailByUserID = function(req, res,id) {
//var userId = new ObjectId(id);
Userdetail.find({ user : req.params['userId'] }).exec(function(err, userdetail) {
if (err) console.log(err);
if (! userdetail) return next(new Error('Failed to load Userdetail ' + id));
req.userdetail = userdetail ;
console.log(userdetail);
});
};
app.route('/orders/getUserDetails/:userId').get(orders.userdetailByUserID);
http://localhost:3000/orders/getuserdetails/561ac35ce8436dc41b37011d
服务器路由定义为
exports.userdetailByUserID = function(req, res,id) {
//var userId = new ObjectId(id);
Userdetail.find({ user : req.params['userId'] }).exec(function(err, userdetail) {
if (err) console.log(err);
if (! userdetail) return next(new Error('Failed to load Userdetail ' + id));
req.userdetail = userdetail ;
console.log(userdetail);
});
};
app.route('/orders/getUserDetails/:userId').get(orders.userdetailByUserID);
http://localhost:3000/orders/getuserdetails/561ac35ce8436dc41b37011d
如果我像这样直接在浏览器上打电话:
exports.userdetailByUserID = function(req, res,id) {
//var userId = new ObjectId(id);
Userdetail.find({ user : req.params['userId'] }).exec(function(err, userdetail) {
if (err) console.log(err);
if (! userdetail) return next(new Error('Failed to load Userdetail ' + id));
req.userdetail = userdetail ;
console.log(userdetail);
});
};
app.route('/orders/getUserDetails/:userId').get(orders.userdetailByUserID);
http://localhost:3000/orders/getuserdetails/561ac35ce8436dc41b37011d
我得到了所需的输出。这是订单的userId的userdetails。
但我不知道如何从客户服务部打电话。
我正在做下面这样的事情:
.factory('GetUserDetails', ['$resource',
function($resource) {
var resource;
resource=$resource('/orders/userdetails/:userId',{userId: '@userId'},{
getUserDetail:{
method:'GET',
isArray:true
}
});
return resource;
}]);
在控制器中:我调用服务,如:
function loadUserDetails() {
$scope.userDetails = GetUserDetails.getUserDetail({userId :userid}).$promise.then(function(data) {
$scope.userDetails = data;
});
}
它不会产生期望的结果,因为这会调用userdetails并获取所有记录,但我只希望输入的userId有一条记录 调用
GetUserDetails.GetUserDetails(…)
函数时,在您的网络面板中,您是否看到用户ID被插入到查询的URL中?我在控制台中看到以下内容:GET/userdetails?userId=56135fe07938e5ec029f70b0 304 21207.463 ms?我在网络和控制台中看到以下内容:GET/userdetails?userId=56135fe07938e5ec029f70b0 304 21207.463 ms?但这应该很奇怪,所以你的URL的前缀是错误的,让我试着自己复制它(如果你能提供一个plunkr,它会有帮助)