如何将 flash 消息放入我的代码中?
How to put flash message into my code?
我有一个功能
function fileFilter(req, file, cb) {
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/gif' ) {
console.log('Wrong format!');
return cb(null, false);
}
if ( file.size > 10000 ){
console.log('Image is too big!');
return cb(null, false);
}
cb(null, true);
}
var upload = multer({ storage: storage, fileFilter: fileFilter });
此功能在我发出 post 请求时起作用。
router.post('/changeAvatar', upload.single('avatar'), function(req, res) {
var id = req.user._id;
res.redirect('/user/'+id);
});
如何将闪光灯 (connect-flash
) 置于 console.log 之外?
Connect-flash
已安装,cookies
和 sessions
。我尝试了不同的方式,但我无法理解 flash 消息的哲学...
首先在您的入口脚本中您应该使用连接闪存中间件:
var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var app = express();
app.use(cookieParser('secret'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());
那么您的函数应该如下所示:
function fileFilter(req, file, cb) {
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/gif' ) {
req.flash('error', 'Wrong format!');
return cb(null, false);
}
if ( file.size > 10000 ){
req.flash('error', 'Image is too big!');
return cb(null, false);
}
cb(null, true);
}
最后在 '/user/'+id 视图中,您可以使用 :
从闪存中获取数据
JSON.stringify(req.flash('error'));
我有一个功能
function fileFilter(req, file, cb) {
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/gif' ) {
console.log('Wrong format!');
return cb(null, false);
}
if ( file.size > 10000 ){
console.log('Image is too big!');
return cb(null, false);
}
cb(null, true);
}
var upload = multer({ storage: storage, fileFilter: fileFilter });
此功能在我发出 post 请求时起作用。
router.post('/changeAvatar', upload.single('avatar'), function(req, res) {
var id = req.user._id;
res.redirect('/user/'+id);
});
如何将闪光灯 (connect-flash
) 置于 console.log 之外?
Connect-flash
已安装,cookies
和 sessions
。我尝试了不同的方式,但我无法理解 flash 消息的哲学...
首先在您的入口脚本中您应该使用连接闪存中间件:
var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var app = express();
app.use(cookieParser('secret'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());
那么您的函数应该如下所示:
function fileFilter(req, file, cb) {
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/gif' ) {
req.flash('error', 'Wrong format!');
return cb(null, false);
}
if ( file.size > 10000 ){
req.flash('error', 'Image is too big!');
return cb(null, false);
}
cb(null, true);
}
最后在 '/user/'+id 视图中,您可以使用 :
从闪存中获取数据JSON.stringify(req.flash('error'));