gpt4 book ai didi

node.js - Express:req.flash() 需要 session

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:40 25 4
gpt4 key购买 nike

我在使用 connect-flash 时遇到一些问题,我收到的错误消息是:

'错误:req.flash() 需要 session '

我发现这可能是因为应用程序的顺序,但我不确定这里是否属于这种情况。

应用程序.js:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var flash = require('connect-flash');
var passport = require('passport');
var app = express();

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use(session({secret: '{secret}', name: 'session_id', saveUninitialized: true, resave: true}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

路线等如下

flash生成代码:

passport.authenticate('local', { failureRedirect: '/login', successRedirect: '/', failureFlash: true})

最佳答案

问题在于如何呈现我的 View (使用 req.flash 数据)

改变这个:

loginShow: function(req, res){
res.render('login', { message: req.flash });
}

对此:

loginShow: function(req, res){
res.render('login', { message: req.flash() });
}

修复了错误并导致 connect-flash 按预期运行。

关于node.js - Express:req.flash() 需要 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30561425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com