2015-02-12 4 views
2

Я знаю, что это глупый вопрос, но я что-то упускаю, и я потерялся.Mean.js angularjs, запрашивающий базу данных mongodb

Я создал новый проект, используя «yo meanjs», создав тем самым стандартные леса.

С публичной стороны приложения я пытаюсь выполнить поиск пользователей для пользователей, но не их идентификаторов, а их адреса электронной почты.

Некоторые из того, как мне нужно написать запрос, используя Users.get или Users.query, но я не могу найти пример того, как это сделать. Должен ли я создавать новые контроллеры/маршруты на стороне приложения?

На общественной стороне я пробовал много разных вещей, как:

var user = Users.query({ 
    email: '[email protected]' 
}); 

Я не могу показаться, чтобы видеть лес через красивые деревья прямо сейчас.

Спасибо!

ответ

2

Я думаю, ответ был немного сложнее. Это работает, хотя может быть и лучший способ сделать это.

мне пришлось создать новую функцию в одном из контроллеров пользовательских приложений:

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 ▪ Таблица.

0

Вы можете использовать findOne().

User.findOne({email: req.body.email}, function(err, user){ 
    //... 
    callback(err); 
}); 
Смежные вопросы