Filter - nokitjs/nokit GitHub Wiki

Filter 可以在请求的不同阶段截获请求,进行相关逻辑处理后,继续向下处理请求或结束请求,一个完整的 filter 最少包括 4 个事件,如下

/**
 * AccessFilter
 **/
var AccessFilter = function () { };

/**
 * 在请求发生异常时
 **/
AccessFilter.prototype.onError = function (context, next) {
    next();
};

/**
 * 在请求到达时
 **/
AccessFilter.prototype.onRequest = function (context, next) {
    next();
};

/**
 * 在收到请求数据时
 **/
AccessFilter.prototype.onReceived = function (context, next) {
    next();
};

/**
 * 在发送响应时
 **/
AccessFilter.prototype.onResponse = function (context, next) {
    next();
};

//exports
module.exports = AccessFilter;

在应用中注册 Filter,一般在 应用配置 中:

{
    "filters":{
        "^/":"./filters/demo-filter.js"
    }
}

也可指定 filter 的 vbers

{
    "filters":{
        "get ^/":"./filters/demo-filter.js"
    }
}