gpt4 book ai didi

node.js - 将辅助方法添加到 Koa2 中的上下文对象的最佳方法

转载 作者:行者123 更新时间:2023-12-04 16:53:17 26 4
gpt4 key购买 nike

我想将 viewjson 等方法添加到传递给我的 Controller 的上下文对象中。我在一个先于其他一切运行的中间件中执行此操作:

async function(ctx, next){
ctx.view = view.bind(ctx);
ctx.json = json.bind(ctx);
await next()
ctx.renderer.render();
}

这些方法设置了中间件解释的一些常规配置对象(渲染器),然后通过设置正确的 ctx.body 渲染出实际的响应。这使我能够轻松切换模板语言,并更轻松地组合 API 和模板请求。

除非它不起作用,因为在 await next() 之后 ctx.renderer 是默认的,而不是 Controller 设置的。我怀疑这是一个命名空间问题,但我不确定它来自哪里。

将函数附加到可以引用上下文而不将其传递给它们的上下文的最佳做法是什么?

最佳答案

好的,是 here in the docs我只是错过了它,文档位于存储库中并且没有托管,这使得它们很难导航。

TL;DR:使用 app.context 访问上下文原型(prototype)。在那里添加函数会将它们附加到上下文对象,并允许您从内部使用 this 来访问它。

关于node.js - 将辅助方法添加到 Koa2 中的上下文对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com