2017-02-26 77 views
1

我的闪存消息出现问题。我的网页上没有收到错误讯息。请告诉我错误在哪里。护照js中的闪存邮件

PS。对不起,我的英语; d

app.js

要求:快递,护照,哈巴狗,表达会话,cookie的解析器,连接闪光,身体的解析器...

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()方法时,此方法是我们用来刷新错误的方法。

要闪烁的错误讯息,注册页面,当错误发生时,你就会把你的HTTP请求回调如下:

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

非常感谢您!是工作。 – ch9ch9n

+0

我不能留下反馈,因为我没有15的声望。抱歉。 – ch9ch9n