node.js - Node - 连接闪存不工作

标签 node.js mongodb express web frontend

我正在尝试使用 connect-flash 显示错误消息,但它似乎不起作用。我尝试了多种方法来完成这项工作,但其中任何一种都有效。我需要一个具有类似配置代码的网络应用程序,并且运行没有任何问题。

这是我的代码:

const express = require('express')
const moment = require('moment')
const morgan = require('morgan')
const bodyParser = require('body-parser')
const db = require('./configs/db')
const flash = require('connect-flash')
const session = require('express-session')
const cookieParser = require('cookie-parser')
const app = express()

app.set('view engine', 'ejs')
app.set('views', 'views')
app.set(db)
app.use(bodyParser.urlencoded({extended:true}))
app.use(bodyParser.json())
app.use(morgan('dev'))
app.use(cookieParser())
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))
app.use(flash());
var sessionFlash = function(req, res, next) {
    res.locals.currentUser = req.user;
    res.locals.error = req.flash('error');
    res.locals.success = req.flash('success');
    next();

}
app.use(sessionFlash)




app.get('/', function (req, res) {
  req.flash('error', 'Welcome');
  res.render('test', {
    title: 'Home',
  })
});
app.get('/addFlash', function (req, res) {
  req.flash('error', 'Flash Message Added');
  res.redirect('/');
});

我的 EJS 文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
  <%  if(error){ %>
      <div class="">
          <h1><%=error%></h1>
      </div>
    <% } %>
  </body>
</html>

最佳答案

我猜测您没有通过 HTTPS 为服务器提供服务,在这种情况下,以下内容将阻止设置 session cookie:

cookie: { secure: true }

参见the documentation .

关于node.js - Node - 连接闪存不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244491/

相关文章:

node.js - mongoose.connection.collections.collection.drop() 每隔一段时间就会抛出错误

javascript - 通过 NodeJS/Webix 在 MongoDB 中添加数据

用于选择嵌入对象的 Mongodb 查询

node.js - 如何在sequelize中从父表获取数据

javascript - 回调、错误捕获和 MongoDB 的问题

node.js - 如何在for循环中使用node-schedule来调度任务?

node.js - 如何将 WebAssembly 与 Node.js 结合使用

node.js - 如何在 443 中为 apache 和 Node 配置 https 支持?

node.js - Angular 通用服务器端渲染 (SSR) res.render 未加载

django - django 1.8 的多个数据库(mongodb[mongoengine] 和 sql )