-1

我对节点和快递世界有点陌生,所以请原谅我的任何错误,我有几个方法在我使用这样的东西后返回 500。

参考错误

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

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

4

1 回答 1

0

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

于 2018-12-04T05:32:09.730 回答