У меня проблема с передачей объекта res моей функции jQuery. переход от браузера к mongoDB и обратно - PullRequest
0 голосов
/ 02 апреля 2020

Привет всем, я сейчас работаю над веб-сайтом и пытаюсь заставить логин работать. Когда я отправляю информацию для входа, она отправляется как $ .get (), (я отправлю код), и информация правильно подключается к базе данных mon go, поэтому я знаю, что маршрутизация в порядке, но моя проблема заключается в ответ. Я могу видеть нужные данные, но не могу перехватить их внутри обратного вызова для $ .get (), и я не уверен, почему.

это мой индекс. js:

          $.get("/login", {email: email.val(),password: password.val()}, function(data){

           console.log(data,"indexjs line 294");
         },"json");

маршруты. js:

    app.get("/login", passport.authenticate('local-login', {
 successRedirect : '/login', 
// redirect to wherever you want to go        
  failureRedirect : '/signUp' ,
// redirect back to the signup page if there is an error   
  successFlash:true,

  }),
 (req,res,)=>{
   res.send( console.log("inside get / route line 26"));
  }
);

паспорт. js:

    passport.use('local-login', new LocalStrategy({
        // by default, local strategy uses username and password, we will override with email
        nameField:'name',
        usernameField: 'email',
        passwordField: 'password',
        passReqToCallback: true // allows us to pass back the entire request to the callback
    },
    function(req, email, password, done) {
        // asynchronous
        // User.findOne wont fire unless data is sent back
        process.nextTick(function() {

            // find a user whose email is the same as the forms email
            // we are checking to see if the user trying to login already exists

         User.findOne({ 'email': email }, function(err, user) {
                // if there are any errors, return the error
                if (err)
                    return done(err);
                // check to see if theres already a user with that email; uses flash module
                if (user) {

                   var newUser = new User();
                    // set the user's local credentials
                   newUser.password = newUser.generateHash(password);

                   if(!newUser.password == user.password){
                    return done(null, false, req.flash('signupMessage', 'incorrect password'));
                   }
                    else{
                        newUser.name = user.name;
                        newUser.email = user.email;
                        //console.log(newUser,"newUser in passportjs line 125");
                     return done(user);
                    }
                }
                 else {
                    // if there is no user with that email
                     return done(null, false, req.flash('signupMessage', 'That email does not exist.'));
                }

            });

        });

    }));

ответ, который я получаю:

{
  _id: 5e850e5bfd081f1ed0437bdb,
  name: 'Jane Smith',
  email: 'jane@smith.com',
  password: '$2a$08$mqw45NEn52gPZ8.x0.vQh.4EvXu5Q3pRO4vFqd6dbAxuAsjm5TXxO',
  __v: 0
}

Как вы можете видеть, это информация, которую я хочу, но как мне записать ее обратно в свой индекс. js, чтобы я мог добавить тег html к имени пользователя. Буду признателен за любую помощь, я пробую все, что могу придумать, и прочесываю столько документации, сколько смогу найти. Как только я смогу решить эту проблему, я смогу завершить sh оставшуюся часть входа на сайт.

...