connect-flash 的错误消息:flash 未定义
Error message with connect-flash: flash is not defined
我正在读一本关于 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('/')
})
}
Controllers/newUser.js:
module.exports = (req, res) =>{
res.render('register',{
errors: flash('validationErrors')
})
}
错误
ReferenceError: flash 未定义。
此错误发生在 controllers\newUser.js:3:17)
我已经多次重读该章节并寻找解决方案,但没有成功。我不明白为什么它在 index.js.
中声明时未定义
为什么 flash 未定义?我该如何解决?
module.exports = (req, res) =>{
res.render('register',{
errors: req.flash('validationErrors')
})
}
您可能没有从请求中调用它。
我正在读一本关于 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('/')
})
}
Controllers/newUser.js:
module.exports = (req, res) =>{
res.render('register',{
errors: flash('validationErrors')
})
}
错误
ReferenceError: flash 未定义。
此错误发生在 controllers\newUser.js:3:17)
我已经多次重读该章节并寻找解决方案,但没有成功。我不明白为什么它在 index.js.
中声明时未定义为什么 flash 未定义?我该如何解决?
module.exports = (req, res) =>{
res.render('register',{
errors: req.flash('validationErrors')
})
}
您可能没有从请求中调用它。