连接闪存的错误消息:未定义闪存

我正在读一本关于 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)

控制器/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('/')

    })

}

控制器/newUser.js:


module.exports = (req, res) =>{

    res.render('register',{

        errors: flash('validationErrors')

    })

}

错误


ReferenceError:未定义闪存。


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


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


为什么 flash 未定义?我该如何解决?


料青山看我应如是
浏览 74回答 1
1回答

慕容3067478

module.exports = (req, res) =>{    res.render('register',{        errors: req.flash('validationErrors')    })}你可能会错过从 req.call 调用它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript