我曾尝试从github页面实现flash消息,即expressjs/express-messages但无法获得结果 文件是用EJS给出的,Jade没有找到带把手的解决方案
我的 index.js 文件包含express-validator,connect-flash,express-session,如下所示
.
const expressValidator = require('express-validator');
const flash = require('connect-flash');
const session = require('express-session');
// Express Session Middleware
app.use(session({
secret: 'keyboard cat',
resave: true,
saveUninitialized: true,
// cookie: { secure: true }
}));
// Express Messages Middleware
app.use(require('connect-flash')());
app.use(function (req, res, next) {
res.locals.messages = require('express-messages')(req, res);
next();
});
// Express Validator Middleware
app.use(expressValidator({
errorFormatter: function(param, msg, value){
var namespace = param.split('.')
, root = namespace.shift()
, formParam = root;
while(namespace.length){
formParam += '[' + namespace.shift() + ']';
}
return {
param : formParam,
msg : msg,
value : value
};
}
}));
User.js 包含 req.flash
// Register
router.post('/new-user',(req, res, next) => {
let user= new User();
user.fName = req.body.fName;
user.lName = req.body.lName;
user.userName = req.body.userName;
user.email = req.body.email;
user.password = req.body.password;
user.joinedDate = req.body.joinedDate;
user.save(function(err) {
if (err) {
req.flash('danger','User cant added') ;
res.redirect("new-user");
} else {
req.flash('success','User added') ;
res.redirect("new-user");
}
})
});
带有 message.hbs 的车把文件
{{#if errors}}
{{#each errors}}
<div class="error">
{{msg}}
</div>
{{/each}}
{{/if}}
和 newUser.hbs 包含 {{&gt;消息}}
{{> message}}
<div class="container">
<div class="row">
<div class="col-12">
<div class="card">
<h3 class="card-header text-center">
<i>Register New user</i>
</h3>