以下代码不起作用:
// 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中添加控制器?
不确定是否有帮助,但是您可以通过当前控制器的构造函数注入另一个控制器。您还应该像使用lb4控制器,然后假设您创建了2个控制器,并且想在第二个控制器中访问其中的第一个,则可以执行以下操作:
constructor(
// Inject other controller
@inject('controllers.SomeOtherController')
// Create localy
public otherCtrl: SomeOtherController,
然后
otherCtrl.SomeMethod()
问候,