2017-02-26 4 views
1

Ich habe ein Problem mit Flash-Nachrichten. Ich erhalte keine Fehlermeldungen auf meiner Seite. Bitte sag mir wo der Fehler ist.Flash-Nachricht im Pass js

PS. Sorry für mein Englisch; D

app.js

erfordern: express, Reisepass, Mops, Express-Sitzung, Cookie-Parser, connect-Blitz, Körper-Parser ...

var router = require('./router.js')(passport); 
var initPassport = require('./passport-init.js'); 

var app = express(); 

app.set('views', __dirname + '/views'); 
app.set('view engine', 'pug'); 

app.use(cookieParser('secret')); 
app.use(session({ cookie: { maxAge: 60000 }, secret: 'secret' })); 
app.use(flash()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(passport.initialize()); 
app.use('/', router); 

initPassport(passport); 

router.js

var express = require('express'); 
var router = express.Router(); 

module.exports = function(passport) { 

    router.get('/', function(req, res) { 
     res.render('index', { 
      title: 'index page' 
     }); 
    }); 

    router.post('/auth',   
     passport.authenticate('local', {   
      successRedirect: '/', 
      failureRedirect: '/', 
      failureFlash: true 
     }) 
    ); 

    return (router); 
}; 

Pass-Init.js

var User = require('./user.js'); 
var LocalStrategy = require('passport-local').Strategy; 

module.exports = function(passport) { 

    passport.use('local', new LocalStrategy({ usernameField: 'email', passwordField: 'pass', passReqToCallback: true }, 

     function(email, pass, done) { 
      User.findOne({ where: { email: email } }).then(function(err, user) { 
       if (err) { 
        return done(err); 
       } 
       if (!user) { return done(null, false, { message: 'Incorrect username.' }); 
       } 
       if (!user.validPassword(pass)) { return done(null, false, { message: 'Incorrect password.' }); 
       } 
       return done(null, user); 
      }); 
     } 
    )); 
}; 

und index.pug

include ./headers.pug 

div(class="container") 
    div(class="row head") 
     div(class="col-xs-12") 
      if message 
        p #{message} 

    div(class="row body-left") 
     div(class="col-xs-3") 
      include ./auth.pug 
     div(class="col-xs-9") 

Antwort

1

Denken Sie daran, dass app.VERB ('Weg', Callback) sind für die jeweilige HTTP-Anforderung zum Beispiel app.get ('/' umgesetzt, Callback) wird für die GET-Anforderung an das Stammverzeichnis ausgeführt. Die app.use() funktioniert genauso, aber der Unterschied ist, dass sie für alle Anfragen unabhängig vom Pfad implementiert wird.

Was das bedeutet ist Sie haben nur Ihre Express-Anwendung konfiguriert, um flash() für alle Anfragen zu verwenden, aber Sie haben nicht wirklich gesagt, Flash Flash Nachrichten.

Connect flash stellt die Methode flash() zur Verfügung, wenn sie auf Anfragen verwendet wird. Diese Methode verwenden wir, um Fehler zu flashen.

Um Fehlermeldungen in der Anmeldeseite blinkt, wenn ein Fehler auftritt, können Sie die folgenden in Ihrem HTTP-Anforderung Rückrufe setzen würde:

Sie
res.render('signup', { 
    title: 'Sign-up Form', 
    messages: req.flash('error') 
}); 
+0

vielen Dank !! Es ist Arbeit. – ch9ch9n

+0

Ich kann kein Feedback hinterlassen, weil ich keinen Ruf habe. Es tut uns leid. – ch9ch9n