javascript - Flash -/路线未加载

标签 javascript node.js

我正在尝试添加 flash打包到我的 Express 项目中。

在我的 app.js 文件中,我通过 app.use 加载 flash:

const express = require("express")
const flash = require("flash")
const session = require("express-session")
const path = require("path")
const app = express()

app.set("views", path.join(__dirname, "views"))
app.set("view engine", "pug")
app.use(express.static(path.join(__dirname, "/../public"))) //public folder!
app.use(flash)
app.use(session({
    key: 'user_sid',
    secret: 'sessionSecret',
    resave: true,
    saveUninitialized: false,
}));

app.get('/', function (req, res) {
    req.flash('success', { msg: 'Thank you! Your feedback has been submitted.' });
    res.send('Hello World!')
})


const port = process.env.APP_PORT || 8080
const host = process.env.APP_HOST || "localhost"

app.listen(port, function () {
    console.log("Listening on " + host + ":" + port)
})

我试图在我的 View 中显示闪光灯,如下所示:

for msg in flash
  a.alert(class='alert-' + message.type)
    p= message.message

但是,我的 / 路线未加载。有什么建议我做错了什么吗?

感谢您的回复!

最佳答案

根据https://github.com/expressjs/flash的“使用”部分,正确的初始化是

app.use(require('flash')());

所以你必须在第 10 行添加括号,即

app.use(flash());

(因为您已经完成了 require-part,但仍然需要调用而不是传递 flash)

关于javascript - Flash -/路线未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618686/

相关文章:

javascript - 通过javascript将Input(box)中的数据添加到sql db

javascript - 将值传递给隐藏的输入

javascript - 'undefined' 不是在 Safari 中评估 el.click() 的函数

javascript - 'app.router' 已弃用!在简单的网站上

node.js - Docker Compose:.env:没有这样的文件或目录/NodeJS

node.js - Heroku - 当应用程序为 "asleep"时,CRON 作业是否继续工作?

javascript - 使用 Browserify 具有多个构建配置的复杂主干应用程序

c# - 在按下回车键时触发 ASP.NET TextBox 事件

javascript - NodeJS ES6 模块和 "default"导出/导入

javascript - 在 NodeJS 中同时输入和输出