通过 Angular 变量进行猫鼬查询

Mongoose query via Angular variable

我正在尝试使用 angular 变量 - 电子邮件地址查询我的猫鼬模型。
我从 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);
    });
});

我不知道如何使用 angular 控制器将邮件地址传递给 GET 请求。

我的尝试:

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

findOne 参数设置为固定邮件地址有效,但我不知道如何使用 angular 控制器传递邮件地址。 希望你能帮助我。
最好的问候,大卫

使用护照更新
接近解决方案,但现在我只得到我的数据库的第一个数据条目。
总结一下,我的路线:

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); 
    });
});

我的 angular 控制器:

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

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

Passport 有效,我可以登录并在个人资料页面上显示电子邮件地址。但是通过这条路线,我只是从我的数据库中获取第一个 [0] 条目。

你确定要angular传递这个变量吗?

如果在护照上,那么很可能是用户自己的电子邮箱?如果是这样,那么您应该完全在后端查找它。

如果电子邮件确实是从 angular 传递的,那么将它放在 passport 中根本没有意义,您只需将其作为 js 变量传递即可。

编辑

findOne 应该只有 return 个结果。如果您要获取多条记录,可能需要使用 find

得到解决方案。非常感谢@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); 
    });
});

Angular 控制器:

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