2017-02-26 8 views
1

私はフラッシュメッセージに問題があります。私は自分のページにエラーメッセージを表示しません。どこでエラーを教えてください。パスポートjsのフラッシュメッセージ

PS。私の英語のため申し訳ありませんが、D

app.js

が必要です:表現、パスポート、パグ、表現・セッション、クッキーパーサ、接続-フラッシュ、ボディパーサー...

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); 
}; 

パスポート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); 
      }); 
     } 
    )); 
}; 

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") 

答えて

1

app.VERB( 'ルート'、コールバック)を例示app.get( '/' のそれぞれのHTTP要求のために実装されていることを、覚えておいてくださいコールバック)がルートディレクトリへのGET要求に対して実行されます。 app.use()は同じように動作しますが、違いはパスに関係なくすべてのリクエストに対して実装されている点です。

これが意味するのはすべての要求に対してflash()を使用するように特急アプリケーションを設定しただけですが、フラッシュするときに実際にフラッシュに指示していないのはメッセージです。

Connect flashでは、リクエストでflash()メソッドを使用できるようにします。このメソッドは、エラーをフラッシュするために使用します。

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

はどうもありがとうございました!!:エラーが発生したとき、あなたはHTTPリクエストのコールバックに次のように置く、サインアップページにエラーメッセージが点滅し

その仕事。 – ch9ch9n

+0

私は15の評判がないので、私はフィードバックを残すことはできません。ごめんなさい。 – ch9ch9n

関連する問題