我如何直接在LoopBack 4中添加控制器?

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

以下代码不起作用:

// BAD CODE

import {ApplicationConfig} from '@loopback/core';
import {RestApplication, RestServer, get} from '@loopback/rest';


export class HelloController {
  @get('/hello')
  hello(): string {
    return 'Hello world!';
  }
}

export class HelloWorldApplication extends RestApplication {
  constructor(options: ApplicationConfig = {}) {
        super(options);

        this.controller(HelloController); // Error Here
  }

  async start() {
    await super.start();
        const rest = await this.getServer(RestServer);
        console.log(
            `REST server running on localhost:${await rest.get('rest.port')}`,
        );
  }
}

我收到此错误:

UnhandledPromiseRejectionWarning:TypeError:paramTypes不可迭代在resolveControllerSpec(/Users/seph/Code/Project/api-loopback/node_modules/@loopback/openapi-v3/src/controller-spec.ts:312:21)


我如何直接在LoopBack 4中添加控制器?

loopbackjs
1个回答
0
投票

不确定是否有帮助,但是您可以通过当前控制器的构造函数注入另一个控制器。您还应该像使用lb4控制器,然后假设您创建了2个控制器,并且想在第二个控制器中访问其中的第一个,则可以执行以下操作:

constructor(   
// Inject other controller
@inject('controllers.SomeOtherController')
// Create localy
public otherCtrl: SomeOtherController,

然后

otherCtrl.SomeMethod()

阅读更多Loopback Controllers

问候,

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