有没有办法过滤掉包括&来自Node.js响应的脚本文件?

时间:2016-01-28 23:55:17

标签: node.js express request

在中间件模块中,我正在尝试计算从父应用程序发出的页面请求数。可以将其视为通用请求监视器,它对父服务的页面一无所知。我对它的初步尝试只是听取了请求,并在生成每个响应时递增了一个计数器,结果发现每个页面请求都生成了来自所有包含请求(favicon.ico,脚本文件等)的许多其他响应。我希望如此,但希望有一种方法来过滤掉辅助文件。

有没有办法区分它们,以便我可以忽略计数中包含的文件?

到目前为止,我已经使用了请求和express-req-metrics中间件来查看响应属性,但还没有看到任何有用的属性。

1 个答案:

答案 0 :(得分:1)

如果您使用中间件来提供静态资产,那么一种解决方案就是 只需重新排序中间件,以便静态资产请求永远不会成功 到您的柜台中间件(如果它们由上游中间件处理):

<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes
    autoGenerate="true">
    <datastore-index kind="MyEntity" ancestor="false" source="manual">
        <property name="OtherEntityRef" direction="asc"/>
        <property name="price" direction="asc"/>
    </datastore-index>
   </datastore-indexes>

然而,一个缺点是,如果您没有var counter = 0; app.use(serveStatic('public')); app.use(function(req, res, next) { counter++; next(); }) // ... routes defined down here ... 文件 例如,serveStatic中间件将不处理请求和您的计数器 中间件会计算这些请求。

另一个解决方案是编写您的计数器中间件,以便进行检查 请求路径首先确保路径不会结束 '.ico','。js','.jpg'等。这里我只使用一个基本的正则表达式:

favicon.ico