req.flash не работает с res.redirect - PullRequest
0 голосов
/ 20 ноября 2018

Я немного новичок в узле и выражаю мир, поэтому, пожалуйста, прости меня за любые мои ошибки 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();
});

Iпытался найти решение в Интернете, но не смог заставить его работать.Мне действительно трудно отладить какую-либо помощь, и я буду очень признателен.

1 Ответ

0 голосов
/ 04 декабря 2018

Решил мою ошибку давным-давно, на случай, если кто-то еще столкнется с той же проблемой. Вот ответ на нее.У меня был дубликат <% - messages ()%> в моем отдельном файле ejs, который вызывал проблему, которая в итоге приводила к сбою приложения.

...