我知道这是一个愚蠢的问题,但我错过了一些东西而且我迷路了。
我使用'yo meanjs'创建了一个新项目,从而创建了标准的脚手架。
从应用程序的公共方面,我试图搜索用户的用户不是基于他们的ID而是他们的电子邮件地址。
我需要使用Users.get或Users.query编写查询,但我找不到如何执行此操作的示例。我是否必须在应用程序端创建新的控制器/路由?
在公众方面,我尝试过许多不同的事情:
var user = Users.query({
email: 'bob@this.com'
});
我现在似乎无法通过美丽的树木看到森林。
谢谢!
答案 0 :(得分:2)
我猜答案有点复杂。这是有效的,尽管可能有更好的方法。
我必须在其中一个app用户控制器中创建一个新功能:
exports.userByEmail = function(req, res, next, email) {
console.log('userByEmail ' + email);
User.findOne({
email: email
}).exec(function(err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User with email ' + email));
res.json(user);
next();
});
};
接下来,我必须创建一条新路线:
app.route('/users/email/:emailAddr').get(users.me);
app.param('emailAddr', users.userByEmail);
然后我用$ htttp.get调用它:
$http.get('/users/email/' + newEmail).
success(function(data, status, headers, config) {
// do something useful with data
}).
error(function(data, status, headers, config) {
$scope.error = 'Problem finding a user with that email';
});
问题源于我无法使用现有的CRUD调用之一来发送查询json对象。
答案 1 :(得分:0)
您可以使用findOne()。
User.findOne({email: req.body.email}, function(err, user){
//...
callback(err);
});