问题标签 [inversifyjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1958 浏览

javascript - Nest.js 中的多重注入

在 Inversify.js 中有一个multiInject装饰器,它允许我们将多个对象作为数组注入。此数组中的所有对象的依赖关系也已解决。

有什么方法可以在 Nest.js 中实现这一点吗?

0 投票
1 回答
162 浏览

node.js - InversifyJS 注入 express.Application

我正在尝试在我的一个 Express 项目中实现 InversifyJS,除了 websocket 之外,一切都运行良好。WebsocketServer 需要一个构建的服务器实例,我将连接存储在 express 对象中,如下所示:

现在我有一个管理消息的 WebsocketService,我曾经private app: express.Application在构造函数中使用参数构建它,并且连接的客户端在那里,但我无法使用 inversify 注入对象。有人知道如何使用 inversify 注入它吗?

0 投票
2 回答
764 浏览

typescript - 从 inversify-express-utils 控制器获取 404

我正在努力正确配置 inversify-express-utils 服务。我正在尝试使用两个控制器,但 inversify 似乎只发现了其中一个。

以我目前的配置,helloController似乎只是在注册。请求GET .../api/v1/hello按预期响应 200 OK。但是,请求以GET .../api/health404 NOT FOUND 响应。

我究竟做错了什么?

这是我当前的配置:

src/api/index.ts

src/api/controller/index.ts

src/api/controller/healthController.ts

src/api/controller/v1/index.ts

src/api/controller/v1/helloController.ts

0 投票
1 回答
1678 浏览

typescript - 反转依赖注入不将依赖注入构造函数

我已按照 npm 和 github 上的指南进行 inversify 以在我的 Typescript 项目中配置依赖注入。

我有一个控制器、一个服务和一个路由器。服务通过构造函数注入注入控制器,控制器直接从路由器内部的依赖注入容器中提取。

我得到一个错误'Cannot read property 'listingService' of undefined'

似乎控制器已被访问,但由于某种原因,当我尝试访问该服务时,我发现它是undefined

有人可以告诉我问题是什么吗?

提供我的工作所需的相关骨架代码如下:

0 投票
1 回答
3351 浏览

typescript - 反转在许多域类上注入依赖项的正确方法

我在弄清楚如何处理使用 typescript 制作的 rest web 服务上的依赖项和注入时遇到了麻烦。我试图避免根据依赖倒置原则依赖于我的域类的反转。这是到目前为止的项目结构:

这是关于我的课程的示例:

现在我想通过 inversify 注入所有依赖项,但我不想修改我的所有域类以通过 @injectable 装饰器使它们可注入。

我虽然做的一件事是做一个包含 @injectable 依赖于 inversify 模块的类,该模块继承了我需要注入的每个域类。例如:

但这导致我遇到一个问题,即我有很多域类,并且创建这么多类会很疯狂。

另一种方法是创建一个“上下文”类,其中包含对所有类的引用,将它们绑定到容器并在需要时检索它们:

现在的问题是我不知道如何创建实例并在 inversify 容器中正确注册它们,所以我可以在应用程序之后检索它们。

解决这个问题的最佳方法是什么?

0 投票
1 回答
1829 浏览

javascript - InversifyJS - 注入服务来表达中间件

我正在使用 inversify、inversify-binding-decorators 和 inversify-express-utlis,但 express 中间件有问题。

我以这种方式调用我的中间件:

这是我的ioc注册课程。请注意,这里我在请求范围内手动注册了 SessionContext

现在在我的中间件中,我想以这种方式在请求范围服务中获取我的 SessionContext:

服务已解决,但问题是如果我在其他地方解决他,我会得到其他实例。当我在快速中间件中使用服务时,在请求范围内不起作用。总是解决在这里给出新的实例。换句话说 - 我想从快速中间件开始范围。我觉得作用域是从 inversify-express-utils 控制器开始的。

0 投票
0 回答
150 浏览

typescript - 使用构造函数注入测试类

我有一个类,其中使用 inversify 的构造函数注入来注入多个对象。

我正在jest使用以下方式对此进行测试。

测试运行良好,但new Doctor()抛出 ts lint 错误的行表明Expected two arguments but received 0.

有没有办法在不使用@ts-ignore或使用属性注入的情况下避免这种情况?

0 投票
0 回答
339 浏览

typescript - 自动工厂如何在 InversifyJS 中工作

在 Autofac 中,auto-factory 是用于实例化具有无法从容器中解析的额外道具的类的工厂。但在 InversifyJS 中,情况有所不同。有人可以解释我应该如何/何时在 Inversify 中使用自动工厂吗?

它无法解析 Kitty,因为 Kitty 有 name 参数。但我把它传给工厂。

0 投票
1 回答
1116 浏览

node.js - 将 HttpContext 注入 InversifyJS 中间件

我有以下控制器。

我已经实现了一个自定义 AuthenticationProvider,它返回一个主体,其中包含有关当前经过身份验证的用户的详细信息,包括用户的角色。

这一切都很好,但我想知道如何从上述 GET 路由使用的 authMiddleware 中检索主体。

现在我有一个丑陋的黑客,它使用 InversifyJS 的内部结构。

自定义身份验证提供程序使用授权标头对用户进行身份验证并返回一个主体。我不想在中间件中再次做这项工作,我只想检索主体。

这个 hack 有效,但我想知道是否有人知道在这个中间件中获取 HttpContext 的更简洁的方法。

我知道如果您从 BaseMiddleware 扩展,您可以访问 HttpContext 并因此访问主体(用户),但是我不清楚您如何将配置(参数)传递给它,例如所需的角色。与 InversifyJS 上的以下问题相关。

https://github.com/inversify/InversifyJS/issues/673

0 投票
1 回答
287 浏览

javascript - 当一个类在 Typescript 中实现自身时是什么意思

我正在尝试将依赖注入添加到一个普通的 Typescript 项目中,找到了一个名为 inversify 的 npm 包。因此,查看我遇到此代码的示例:

忍者类实现忍者类是什么意思?

在示例中,容器将类绑定到自身,它与此有关吗?