我正在使用集成了Swagger UI的nodejs构建应用程序。我已经建立了我的服务文件。我有一个带有POST
请求的控制器,该请求包含三个参数source,productCodes,vehicleType
。当用户在控制器中输入这3个参数时,应将这3个参数传递给服务文件中的getData函数并执行逻辑。我发现很难通过传递参数将服务文件注入控制器文件中。
这是我的controller.ts代码
@Controller('/service/api/message')
export class MessageController {
source: string;
productCodes: string;
vehicleType: string;
constructor(
private readonly messagePublishService: MessagePublishService,
private messageService: MessageService,
) {}
@Post()
async generateMessage(@Body() productEvent: ProductEvent) {
console.log('productEvent:', productEvent);
let message = new ProductMessage();
message.productCode = productEvent.productCodes;
this.messageService.getData(
this.source,
this.productCodes,
this.vehicleType,
);
this.messagePublishService.publish(message);
return 'success';
}
}
这是我的服务。
@Injectable()
export class MessageService {
constructor(private readonly httpService: HttpService) {}
getData(
source: string,
productCodes: string, //['IPB', 'COMP239', 'JEFEA']
vehicleType: string, //['Separate Account', 'SICAV Fund']
): Observable<any> {
var json = '';
const urls = [
'https://awstrp.net/sitemap/retrieve/ide',
];
for (var i = 0; i < urls.length; i++) {
return https.get(urls[i], res => {
res.on('data', function(chunk) {
json += chunk;
});
res.on('end', function() {
var result = JSON.parse(json);
});
});
}
}
}