javascript - 连接闪存错误消息 : flash is not defined

标签 javascript node.js express connect-flash

我正在读一本关于node.js、express 和 mongodb 的书。作者使用connect-flash。但是,我似乎无法让它正常工作。下面是使用connect-flash的文件夹,去掉了不相关的代码。

index.js

const flash = require('connect-flash');
app.use(flash());

const newUserController = require('./controllers/newUser')
const storeUserController = require('./controllers/storeUser') 

app.get('/auth/register', redirectIfAuthenticatedMiddleware, newUserController)
app.post('/users/register', redirectIfAuthenticatedMiddleware, storeUserController)

controllers/storeUser.js

const User = require('../models/User.js')
const path = require('path')

module.exports = (req,res)=>{
    User.create(req.body, (error, user) => {
        if(error){
            const validationErrors = Object.keys(error.errors).map(key => error.errors[key].message)
            // req.session.validationErrors = validationErrors
            req.flash('validationErrors',validationErrors)
            return res.redirect('/auth/register');
        }
        res.redirect('/')
    })
}

Controller /newUser.js:

module.exports = (req, res) =>{
    res.render('register',{
        errors: flash('validationErrors')
    })
}

错误

引用错误:闪存未定义。

此错误发生在controllers\newUser.js:3:17)

我已经多次重读这一章并寻找解决方案,但没有运气。我不明白为什么它在index.js中声明时是未定义的。

为什么 flash 未定义?我该如何解决这个问题?

最佳答案

module.exports = (req, res) =>{
    res.render('register',{
        errors: req.flash('validationErrors')
    })
}

您可能错过了从 req 调用它。

关于javascript - 连接闪存错误消息 : flash is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62629825/

相关文章:

javascript - 当我使用 javascript 加载图 block 时,openlayers map 中如何仅显示一个图 block

javascript - Angular 错误配置错误 : [$resource:badcfg] query

javascript - 产生多个 Promise

javascript - 回调混淆fs模块

javascript - 无法使用mysql模块在node.js中执行Sql查询

node.js - Mongoose 实例方法未定义

JavaScript:如何测试clearInterval函数是true还是false

javascript - 如何根据路由参数从众多用户中只导入一个用户?

javascript - 如何在javascript中创建自定义对象的公共(public)常量实例?

node.js - 使用 Express 将元标记动态注入(inject) HTML