在 Angular 9 中使用 HttpModule(已弃用)

Using HttpModule (deprecated) with Angular 9

我最近从 Angular 4 更新到 9。我做了以下事情:

  1. 创建了新的Angular 9 项目,将所有代码复制到angular 9 项目
  2. 已更新 rxjs(在必要时添加了管道,删除了 concat)
  3. 修复了易于修复的警告(未使用的模块变量等)
  4. 已安装 HttpModule(已弃用)以消除与 'cannot find HTTP' 相关的错误并让我的项目重回正轨

我现在处于 运行ning ng build / ng serve 不会抛出任何错误的地步,我能够访问本地主机并获取我的登录页面。但是,使用我的旧登录表单不起作用。我不断收到 CORS 错误,尽管我在 express 中设置了以下 headers:

app.use(function(req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
  next();
});

Relevant Package Details: "@angular/core": "~9.1.4" <-- all angular components are at this point, "@angular/common": "~9.1.4", "@angular/http": "^7.2.16", "express": "^4.17.1"

我的问题是:

  1. 是否可以像我想做的那样 运行 带有 HTTP module 的 angular 9 应用程序?如果有人成功使用它,是否有任何配置更改/是否即插即用?
  2. CORS 错误是否可能与使用 HTTP module 而不是更新到 httpClient 有关?
  3. 如果我必须更新到 httpClientModule,是否有 tool/utility 可以使此更新更容易?

一次升级5个大版本可不是那么容易的。您最好遵循更新后的 guide

至于 HttpModule,它在 v7 之后被弃用并删除。升级到新的 HttpClientModule 比尝试让删除的东西正常工作要容易得多。

以下是我最终解决升级问题的方法:

  1. 我使用 angular CLI 创建了一个新项目。
  2. 我将我所有的代码都移到了新项目中,然后逐一修复所有异常。

我希望有更简单的方法来完成,因为这是一个耗时的过程。然而,最终它成功了,我能够升级整个项目。