nodejs中有没有类似JAVA的拦截器功能,我想实现数据增删改查都先经过这个过滤器。
想对用户对数据的操作记录,都记录到数据库里,不知道怎么实现?
12 回复
@cyy0418 function filter (data) { // 操作data代码 return 过滤后的data; }
或者filter(data, compose)
异步运行
function filter (data, f) {
// 操作data
f.call(null, 过滤后的data);
}
@cyy0418 这个很简单,只需要2个变量记录操作前的数据和操作后的数据,不需要依赖封装。
操作数据的函数可以定义为: compose(dataA), 返回dataA, dataB.
function compose (dataA) {
// 过滤dataA
// 得到dataB
return { dataA: dataA, dataB: dataB };
}
或者也可以定义多态过滤的版本
function compose (dataA, f) { // f为多态过滤函数
// f(dataA), 过滤dataA;
// 得到dataB
return { dataA: dataA, dataB: dataB };
}