Loopback4依赖项注入中的错误:在上下文应用程序中未绑定到任何值

问题描述 投票:1回答:1

我有这个错误

Unhandled error in POST /client: 500 Error: The key 'controllers.pointController' is not bound to any value in context application

我的班级

constructor(
        @repository(ClientRepository)
        public clientRepository: ClientRepository,           
        // Controllers            
        @inject('controllers.pointController')
        public pointController: PointController,

    ) {
    }
// functions

我遵循loopback4和依赖项注入的文档,但不起作用

任何想法?

javascript loopbackjs loopback loopback4
1个回答
0
投票

默认情况下,LoopBack在绑定控制器类时使用PascalCase键,请参见例如此测试:

https://github.com/strongloop/loopback-next/blob/0444120cda7119c66bc2170f4817e67d8dc9d312/packages/core/src/tests/unit/application.unit.ts#L25-L33

expect(binding.key).to.equal('controllers.MyController');

您的示例没有提供足够的信息,因此我假设您的控制器在PointController文件中定义为类src/controllers/point.controller.ts,并且您正在使用@loopback/boot加载和注册应用程序的工件。

在那种情况下,您需要按以下步骤修复代码-注意大写的P

@inject('controllers.PointController')

其他信息

将来,您可以使用调试日志来查找为不同工件创建的绑定密钥。在Unix(MacOS,Linux)上:

DEBUG=loopback:context:binding npm start

在调试日志中,您应该看到如下消息:

loopback:context:binding Bind controllers.PointController to class PointController

controllers.PointController部分是用于@inject的绑定键,PointController部分是控制器类的名称。

© www.soinside.com 2019 - 2024. All rights reserved.