nodejs中有拦截器吗?
发布于 10 年前 作者 cyy0418 8179 次浏览 最后一次编辑是 8 年前

nodejs中有没有类似JAVA的拦截器功能,我想实现数据增删改查都先经过这个过滤器。

想对用户对数据的操作记录,都记录到数据库里,不知道怎么实现?

12 回复

compose (filter(data))

写个filter函数还需要用到库吗

express 的中间件机制就是…这个

我需要获取操作前的数据,和操作后的数据,该怎么做呢?

如果你使用express,中间件就是“拦截器”

同求 我也很想知道 类似ASP.NET MVC的过滤器

@cyy0418 function filter (data) { // 操作data代码 return 过滤后的data; }

或者filter(data, compose)异步运行

function filter (data, f) {
    // 操作data
    f.call(null,   过滤后的data);
} 

中间件就是拦截器

@tulayang 我想达到的效果是

比如用户操作来数据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 };
}

ex 的中间件,切入点是HTTP 请求接收里,如果我在业务处理中如何使用? 中间件看功能实现是多个拦截一个,有处理排序问题 一般拦截是一对一的 有兴趣看看我写的AOP

回到顶部