闪信不会在客户端显示,如何解决?
Flash message won't display in client side, how to solve?
我一直在关注这个 youtube tutorial 并且我正在尝试弄清楚如何使用 connect-flash
npm。这是我正在使用的代码:
服务器端:
//app.js
const session = require('express-session');
const flash = require('connect-flash');
app.use(session({
name: SESSION_NAME,
resave: false,
saveUninitialized: false,
secret: SESSION_SECRET,
cookie: {
maxAge: SESSION_LIFETIME,
sameSite: true,
secure: IN_PROD
}
}));
app.use(flash());
//users.js
//somewhere in USER LOGIN POST REQUEST:
if(!results.length) {
console.log(" > Cannot fetch user from the database");
req.flash('flash', 'some message in the alert');
return res.redirect('/user_login');
}
//USER LOGIN GET REQUEST:
router.get('/user_login', redirectHome, (req, res) => {
return res.render('userEntries/login', {message: req.flash('flash')});
});
客户端 (EJS)
<body>
<% if(message.length > 0) { %>
<div class="alert alert-success" style="text-align: center">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>INTRO: </strong> <%= message %>
</div>
<% }%>
......
现在,post
和 get
请求在我的应用程序中工作正常,但我不知道为什么即显消息不起作用。这些是我尝试过的东西:
- 在EJS声明中:我也试过
if(message){...}
- 我尝试在
req.locals
中保存闪现消息
- 我试过使用这个 tutorial - 也没有用。
请注意,有时警报会起作用,有时消息会被多次传递!在下图中,我添加了两次无效的用户名和密码,等待了大约。五分钟后重新加载页面,然后发生了以下情况:
我不知道我做错了什么。如果您有任何有用的信息,请告诉我。谢谢
是因为你在打印这样的错误
<%= message %>
它不会工作,因为消息是一个数组。
您可以像下面这样显示您的错误
<%= message[0] %>
或
你可以遍历你的消息数组。
for( m of message) {
<%= m %>
}
我一直在关注这个 youtube tutorial 并且我正在尝试弄清楚如何使用 connect-flash
npm。这是我正在使用的代码:
服务器端:
//app.js
const session = require('express-session');
const flash = require('connect-flash');
app.use(session({
name: SESSION_NAME,
resave: false,
saveUninitialized: false,
secret: SESSION_SECRET,
cookie: {
maxAge: SESSION_LIFETIME,
sameSite: true,
secure: IN_PROD
}
}));
app.use(flash());
//users.js
//somewhere in USER LOGIN POST REQUEST:
if(!results.length) {
console.log(" > Cannot fetch user from the database");
req.flash('flash', 'some message in the alert');
return res.redirect('/user_login');
}
//USER LOGIN GET REQUEST:
router.get('/user_login', redirectHome, (req, res) => {
return res.render('userEntries/login', {message: req.flash('flash')});
});
客户端 (EJS)
<body>
<% if(message.length > 0) { %>
<div class="alert alert-success" style="text-align: center">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>INTRO: </strong> <%= message %>
</div>
<% }%>
......
现在,post
和 get
请求在我的应用程序中工作正常,但我不知道为什么即显消息不起作用。这些是我尝试过的东西:
- 在EJS声明中:我也试过
if(message){...}
- 我尝试在
req.locals
中保存闪现消息
- 我试过使用这个 tutorial - 也没有用。
请注意,有时警报会起作用,有时消息会被多次传递!在下图中,我添加了两次无效的用户名和密码,等待了大约。五分钟后重新加载页面,然后发生了以下情况:
我不知道我做错了什么。如果您有任何有用的信息,请告诉我。谢谢
是因为你在打印这样的错误
<%= message %>
它不会工作,因为消息是一个数组。 您可以像下面这样显示您的错误
<%= message[0] %>
或 你可以遍历你的消息数组。
for( m of message) {
<%= m %>
}