CNode

nodejs中有拦截器吗?

Ccyy0418发布于12 年前最后回复12 年前12 回复9147 浏览0 收藏

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

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

查看回复

回复 (11)

T
tulayang#1·12 年前

compose (filter(data))

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

Y
youxiachai#2·12 年前

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

C
cyy0418#3·12 年前
引用 tulayangcompose (filter(data)) 写个filter函数还需要用到库吗

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

X
xiuxu123#4·12 年前

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

X
xiaobaicai#5·12 年前

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

T
tulayang#6·12 年前
引用 tulayangcompose (filter(data)) 写个filter函数还需要用到库吗

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

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

function filter (data, f) {
    // 操作data
    f.call(null,   过滤后的data);
} 
C
cyy0418#7·12 年前
引用 tulayangcompose (filter(data)) 写个filter函数还需要用到库吗

@tulayang 我想达到的效果是

比如用户操作来数据data,为我想对它这个操作加个过滤器,这个过滤器可以获取用户操作前的数据,和修改后的数据。 类似与监听事件了

T
tulayang#8·12 年前
引用 tulayangcompose (filter(data)) 写个filter函数还需要用到库吗

@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 };
}
J
JacksonTian#9·12 年前

中间件就是拦截器

S
solqkwgkwg#10·12 年前
S
solqkwgkwg#11·12 年前

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

参与回复
登录后即可参与回复。登录