Mean.js angularjs 查询 mongodb 数据库
Mean.js angularjs querying the mongodb database
我知道这是一个愚蠢的问题,但我遗漏了一些东西,我迷路了。
我使用 'yo meanjs' 创建了一个新项目,从而创建了标准脚手架。
从应用程序的 public 端,我试图在用户中搜索用户,而不是根据他们的 ID 而是他们的电子邮件地址。
有些我需要如何使用 Users.get 或 Users.query 编写查询,但我找不到如何执行此操作的示例。我必须在应用端创建新的 controllers/routes 吗?
在 public 方面,我尝试了很多不同的方法,例如:
var user = Users.query({
email: 'bob@this.com'
});
我现在似乎无法透过美丽的树木看到森林。
谢谢!
您可以使用 findOne()。
User.findOne({email: req.body.email}, function(err, user){
//...
callback(err);
});
我想答案有点复杂。这是可行的,尽管可能有更好的方法。
我必须在其中一个应用程序用户控制器中创建一个新函数:
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 对象。
我知道这是一个愚蠢的问题,但我遗漏了一些东西,我迷路了。
我使用 'yo meanjs' 创建了一个新项目,从而创建了标准脚手架。
从应用程序的 public 端,我试图在用户中搜索用户,而不是根据他们的 ID 而是他们的电子邮件地址。
有些我需要如何使用 Users.get 或 Users.query 编写查询,但我找不到如何执行此操作的示例。我必须在应用端创建新的 controllers/routes 吗?
在 public 方面,我尝试了很多不同的方法,例如:
var user = Users.query({
email: 'bob@this.com'
});
我现在似乎无法透过美丽的树木看到森林。
谢谢!
您可以使用 findOne()。
User.findOne({email: req.body.email}, function(err, user){
//...
callback(err);
});
我想答案有点复杂。这是可行的,尽管可能有更好的方法。
我必须在其中一个应用程序用户控制器中创建一个新函数:
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 对象。