req.flash无法与res.redirect一起使用

时间:2018-11-20 11:19:01

标签: node.js express redirect flash-message connect-flash

我对节点和表达世界有些陌生,因此请原谅我的任何nobe错误,在使用这种方法后,我有几种方法可以使我返回500。

refrence to the error

req.flash('success', 'your password has been successfully changed.');
res.redirect('/user-profile');

我也尝试过发送状态,例如

res.redirect(302,'/user-profile');

但它也没有解决

,当我尝试重新加载页面时,它工作正常(第二次尝试),但是,如果我对req.flash进行注释,则所有事情都开始正常工作,似乎在与其他方法一起正常工作时会引起问题我在哪里使用它

req.flash('success', 'You are logged out');
res.redirect('/login');

我的index.js文件中的代码

const express = require('express');
const router = express.Router();
const fs = require('fs');
const bcrypt = require('bcryptjs');
const app = require('../app');
const User = require('../model/user');
const passport = require('passport');
let path = require('path');
router.get('/user-profile', (req,res,next) => {
    res.render('profile',{
        title: 'Profile'
    });
});

router.get('/logout', (req,res,next) => {
    req.logout();
    req.flash('success', 'You are logged out');
    res.redirect('/login');
});

我的app.js中的代码

// Express Messages Middleware
app.use(require('connect-flash')());
app.use(function (req, res, next) {
    res.locals.messages = require('express-messages')(req, res);
    next();
});

我试图在线找到解决方案,但是无法正常工作。我真的很难调试任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

很久以前解决了我的错误,以防其他人遇到相同的问题。以下是答案。我的单个ejs文件中有一个<%-messages()%>的副本,这导致了问题,最终导致应用崩溃。