快速框架连接flash的详细解决方案

第一步:让我们先看看这个插件的使用


var flash =需要('connect-flash);
app.use(Flash()); / /表达使用这个插件


第二步:让我们看看里面是怎么做的。


VaR('util格式=要求的格式);
var ISArray =需要('utilIsArray);


因模块是Node.js的核心模块,利用


module.exports =功能闪存(选项){
选项=选择| | { };
如果用户不指定不安全参数,则安全为true;否则,如果用户指定不安全是false,则安全是真的。
也就是说,这个插件只能指定一个配置项不被指定为不安全,默认是安全的!
var =安全(options.unsafe =定义的)真的options.unsafe;
返回功能(REQ,RES,下){
/ /如果req.flash存在,那么安全也直接调用下面的一个插件,该插件不执行
如果(req.flash安全){ return下();}
/ /如果以上条件不满足要求的Flash属性指定,其值低于_flash功能
req.flash = _flash;
下一步();
}
}



显然,我们看到选项参数可以传入,如果没有指定不安全,则不安全是真的,安全是false的。如果用户显式指定不安全为false,则安全为真,如果不安全指定为false,则安全为true。如果安全为真,则直接调用以下中间件。



现在让我们看看req对象flash的方法是什么:


功能_flash(类型、味精){
/ /如果当前请求对象没有会话域,然后一个错误
如果(this.session = = =不明)把错误('req。Flash)要求(会话);
req.session.flash / /指定默认的空对象域。
VaR信息= this.session.flash = this.session.flash { } | |;
如果(键入MSG){
可在Node.js 0.6 + / / util.format
如果电流超过0.6 + / Node.js环境,传入的参数同时有两个以上的
如果(arguments.length格式> 2){
var args = array.prototype.slice.call(参数1);
获取第二个数组参数之后
味精= format.apply(undefined,args);
通过第二个参数保存值,然后按格式处理值。
} else if(ISArray(MSG)){
msg.foreach(功能(Val){)
(消息{ } = {类型}型公司| | { })推(Val);
});
返回信息{类型}。长度;
如果输入 / /二参数是一个数组,然后所有的数据绑定到req.session.flash域,数据类型是{ 'info:{经过,'home' } }
然后返回到/是一个特定的长度。
}
/ /如果参数不超过2,而味精不是数组,然后加入味精req.session.flash然后返回
返回(消息{类型} = { } |股票型| {})推(味精);
否则如果(类型){ }
/ /如果没有指定味精,只有指定的类型,然后我们到了一个特定类型的req.session.flash数据,删除数据从req.session.flash
VaR ARR =信息{类型};
删除短信息{类型};
报酬| | { };
{人}
如果调用 / /像闪光()没有任何传入的参数,这个时候直接把数据req.session.flash
this.session.flash = { };
返回信息;
}
}



(1)如果有两个以上的参数,那么我们先取得第二和随后的参数,然后进行格式化操作二后续参数,最后将数据返回req.session.flash,同时。


req.flash('info,'email'已发送到%s的用户名);


(2)如果第二个参数是一个数组,然后将数组中的每个元素在req.session.flash,然后返回一个特定类型的数据长度。



(3)否则,如果引进的只是类型,这意味着数据,获取指定类型返回,和数据是从req.session.flash删除。如果我们调用这个方法来获取数据,我们将从会话中删除它。


req.flash('info,'email'发送);
req.flash(错误的、失败的'email'交货);
req.flash('info,'email'重新发送);
req.flash('info);
{ 'email'送''email重新发送} / / = >。
req.flash('info);
此时,信息已被清空。


(4)如果用户不在任何参数传递然后清空req.session.flash域,但返回原来的局部变量保存到req.session.flash对象。


{其他
如果调用 / /像闪光()没有任何传入的参数,这个时候直接把数据req.session.flash
this.session.flash = { };
返回信息;
}


此插件通常与重定向一起使用,以确保在呈现下一页时可用数据。



以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。