来自Angular服务的MEANJS服务器控制器调用

时间:2015-10-11 23:43:03

标签: angularjs node.js mongodb mongoose meanjs

图片中有三种型号User,UserDetails,Order。我想根据Order中的userId获取userDetails。

Model UserDetails:enter image description here

型号订单: enter image description here

我删除了图片中的一些属性以缩短它。

我是服务器控制器上的远程方法

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的用户详细信息。 但我不确定如何通过客户服务拨打电话。 我在下面做了类似的事情:

.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的单个记录。

0 个答案:

没有答案