【发布时间】:2019-03-20 04:01:06
【问题描述】:
我想在节点脚本中重用一些 Angular 6 API 服务,但在正确初始化所有内容时遇到了一些麻烦。
API 服务是使用 Swagger Codegen (-l typescript-angular) 生成的,例如:
@Injectable()
export class UserService {
constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {
...
}
}
这些服务在我的 Angular 6 应用程序中完美运行,我现在想在节点中使用它们来编写一些脚本。我知道 Swagger Codegen 也能够生成纯 Typescript 客户端,但仍希望重用现有的 Angular 服务以使代码库更加一致。
我现在面临的挑战是如何在没有依赖注入的情况下调用这个构造函数。
如果没有依赖注入,似乎很难获得有效的HttpClient 对象。在 AngularJS 中,我曾经为此依赖 Axios,但该库似乎不再提供与 HttpClient 相同的接口(仍然承诺而不是 Angular 6 中较新的 observables)。
在我看来有两种选择:
- 不知何故得到一个
HttpClient对象 -> 无法让它工作。 - 注入另一个公开相同接口的 HTTP 客户端对象 -> 似乎找不到。
有人知道如何正确解决这个问题吗?
干杯,
M.
【问题讨论】:
-
在任何情况下,您都不受限于 Angular 中的 HttpClient。如果您认为 Axios 可以简化任务,您可以在自己的代码中使用它。当然,如果您生成的样板文件已经使用了 HttpClient,这将不起作用。
标签: node.js angular typescript