【问题标题】:Find unused routes or codes in an express app to remove dead code在快速应用程序中查找未使用的路线或代码以删除死代码
【发布时间】:2020-10-21 17:25:55
【问题描述】:

我有一个 4 年的 Express 项目在生产中运行并使用 Express 4.14。各种开发人员一直在添加新功能,但一些旧代码也保留在里面。有没有办法找到未在生产应用程序中使用的未使用代码?。

我想从识别未被调用的路由开始。我们确实使用日志,并且日志在 Kibana 中被摄取。我们还将 APM 与 Kibana 一起使用。

【问题讨论】:

    标签: node.js express apm


    【解决方案1】:

    由于您记录数据,因此您可以创建简单的中间件来记录对应用程序的每个请求。一段时间后(几天或几周,取决于您对这个过程的感觉),您可以收集和解析日志以获取所有请求的路线。然后将请求的路由与应用程序中可用的所有路由进行比较,并删除未使用的路由。

    中间件可以很简单:

    // runs for every request
    app.use('/', function (req, res, next) {
        console.log(`Received request: ${req.method} ${req.path}`);
        next();
    });
    

    要获取在您的应用程序中注册的所有路由,请使用此开发专用代码 (inspired by this answer):

    console.log(app._router.stack.forEach(middleware => {
        if (middleware.route) {
            console.log(`${middleware.route.stack[0].method} ${middleware.route.path}`);
        } else if (middleware.name === 'router') {
            middleware.handle.stack.forEach(route => {
                if (route.route) {
                    console.log(`${route.route.stack[0].method} ${route.route.path}`);
                }
            });
        }
    }));
    

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2014-02-17
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多