2016-07-05 3 views
-1

Я пытаюсь запросить адрес электронной почты в моей базе данных, который соответствует введенному пользователю. Я использую findOne(), но почему-то у меня возникли проблемы с ним:Использование findOne() для запроса адреса электронной почты

Profile.findOne({emailaddress : req.body.emailaddress}, function(matchinguser) { 
      console.dir("matching user" + matchinguser); 
      Profile.create(req.params.all(), function (err, profile) { 
       console.dir(profile); 
       if (err) { 
        req.session.flash = { 
         err: err 
        } 
        return res.redirect('/profile/new') 
       } 
       res.redirect('/profile') 
       req.session.flash = {}; 
      }) //profile created 
     }) //findone 
+2

В функции обратного вызова 'findOne()' отсутствует параметр 'err', он имеет только результат (' matchuser' param). Попробуйте добавить его. Profile.findOne ({emailaddress: req.body.emailaddress}, function (err, matchinguser) {..' и посмотреть, как это происходит. – chridam

+1

* «но почему-то у меня возникают проблемы с ним:« * расширяйте сказал "вопросы" –

ответ

0

Я думаю, что есть несколько вопросов, с кодом, как он стоит. Недопустимое «err» в обратном вызове является одним из них, но также я думаю, что вы должны использовать «exec». Прямо сейчас ваша функция пытается выполнить, так как вы форматируете собственный запрос в файле sails.js. Вот мой рекомендуется скорректированный код:

Profile.findOne({emailaddress : req.body.emailaddress}).exec(err,function(matchinguser) { 
    //Handle errors 
    if (err){ return res.negotiate(err);} 

    //Handle success 
    //I assume do some checks on the user found e.g. return them or if not found create the user 
    if(!matchinguser){ 
    //No user found so redirect back 
    return res.redirect('/profile');} 
    //Rest of your code can go in here if needed I've just redirected you back for now. 
    return res.redirect('/profile/); 
    }); 

Я также хотел бы быть осторожным с использованием req.body.emailaddress непосредственно в запросе, не проверяя его снова, но вот только я.

Смежные вопросы