更改中间件中的服务器选项



在Fastify中,我可以在创建实例时指定实例选项,例如

const fastify = require('fastify')({logger:true, disableRequestLogging: false});

是否可以在向实例注册的中间件中执行此操作?

例如,如果我做了类似的事情

fastify.register(myPlugin);

并且fastify的实例被传递给myPlugin——例如,我可以在中间件中更改其disableRequestLogging值吗?

router依赖于disableRequestLogging来打开/关闭请求和稍后响应的日志记录。

if (disableRequestLogging === false) {
childLogger.info({ req: request }, 'incoming request')
}

路由器确实提供了允许更改disableRequestLoggingsetup功能。您可以在此处看到fastify.js在初始化后期使用router.setup()来应用一些新值。

问题是fastify没有提供对router的访问,作为其公共API的一部分。只有fastify.get/.post/.route等功能允许访问路由器的特定组件。

除了修改来源,我看不出有什么办法。由于严格变量的作用域方式,甚至不像在中对函数进行onkeypatch那样狡猾。即使你能做到这一点,它也将深入研究未定义/未经测试的行为。

最新更新