2015-04-22 61 views
0

我試圖用角度變量 - 電子郵件地址查詢我的貓鼬模型。
我從passport得到一個變量,其中包含電子郵件<%= user.local.email %>通過角度變量的貓鼬查詢

$http.get爲我的模型是這樣的:

app.get('/profile/project/:mail', function (req, res, next){ 
    Project.findOne(req.params.mail, function (err, doc){ 
     if(err) return next(err); 
     res.json(doc); 
    }); 
}); 

我不能找出如何通過郵件與ADRESS的角度控制器,該GET請求。

我嘗試:

$http.get('/profile/project/' + <%= user.local.email %>).then(function (res){ 
       $scope.project = res.data; 
      }); 
     }); 

findOne參數設置爲一個固定的郵件ADRESS的工作,但從來就沒有得到主意如何通過郵件與ADRESS角控制器。 希望你能幫助我。
最好的問候,大衛

更新使用護照
獲取解附近,但現在我只能得到我的DB的第一個數據項。
概括起來講,我的路線:

app.get('/profile/project/', function (req, res, next){ 
    Project.findOne(req.user.local.email, function (err, doc){ 
     if (err) return next(err); 
     if (!doc) return next(new Error('cant find')); 
     console.log(doc); 
     res.json(doc); 
    }); 
}); 

我的角度控制器:

<script> 
     var app = angular.module('myApp', []); 

     app.controller('projectCtrl', function($scope, $http) { 
      $http.get('/profile/project/').then(function (res){ 
       $scope.project = res.data; 
      }); 
     }); 
    </script> 

護照的作品,我可以登錄並顯示在個人資料頁上的電子郵件地址。但是通過這條路線,我只是從我的數據庫中獲得第一個[0]條目。

回答

0

你確定要角度傳遞這個變量嗎?

如果是護照,那麼很可能是用戶自己的電子郵件?如果是這樣,那麼你應該完全查看它在後端。

如果電子郵件確實是從角度傳遞的,那麼在護照中根本沒有意義,並且您只需將它作爲js var傳遞。

編輯

findOne應該只返回一個結果。如果您嘗試獲取多條記錄,可能需要使用find

+0

這使得絕對意義!試了一下,我得到了一些數據 - 但不是正確的設置。我是這樣實現的:'Project.findOne(passport.email,function(err,doc){...' –

+0

如果你有正確的中間件設置,那麼你應該可以做'req.user.local .email' –

+0

編輯我的第一篇文章給你 –

0

得到了解決方案。非常感謝@Austin_Greco!

路線:

app.get('/profile/project/', isLoggedIn, function (req, res, next){ 
    Project.findOne({'author' : req.user.local.email}, function (err, doc){ 
     if (err) return next(err); 
     if (!doc) return next(new Error('cant find')); 
     console.log(doc); 
     res.json(doc); 
    }); 
}); 

角控制器:

$http.get('/profile/project/').then(function (res){ 
    $scope.project = res.data; 
});