我已经设置了express-flash,认为它适合我需要的,但不知为什么不能工作。
我已经看了大约5个youtube视频,我就是不能修复它。
编辑:认为这可能是我的配置的东西,或者也许我需要将闪光灯应用到路由器而不是应用程序,因为我使用路由器代替?
这是我的路由器正在监听/profile GET:
router.get("/profile", userController.userAuth, (req, res) => {
// userAuth just returns next with the users data to render
if (req.user) {
res.render("profile", {
message: req.flash("message"),
status: "loggedIn",
user: req.user,
error: false
});
} else {
res.redirect("/404");
};
});
这是我的路由器post监听/profile post
router.post("/profile", upload.single('sampleFile'), (req, res) => {
// it does file uploading usually, but commented all out for testing this
req.flash('message', 'This is a flash test.');
return res.redirect('/profile');
});
这是我在客户机上的.ejs文件,监听新消息并使用toastr
显示它们<% if (message.length > 0) { %>
<script>
var message = "<%= message %>";
toastr.success(message, "Success", {
positionClass: 'toast-bottom-left'
});
</script>
<% } %>
在控制台上没有任何类型的错误或任何东西。不知道到底是什么问题…
显然已经尝试删除upload.single('sampleFile')只是以防万一:
router.post("/profile", upload.single('sampleFile'), (req, res) => {
// it does file uploading usually, but commented all out for testing this
req.flash('message', 'This is a flash test.');
return res.redirect('/profile');
});
——什么也没做
试着把ejs分解成一个简单的段落元素
<p> <%= message %> </p>
——什么也没做
您介意分享其余的服务器代码吗?您可能已经这样做了,但是您正在初始化express-flash
吗?
const express = require('express');
const router = express.Router();
const flash = require('express-flash');
// initialize express-flash
app.use(flash());
// continue rest of server code