【问题标题】:Using HttpModule (deprecated) with Angular 9在 Angular 9 中使用 HttpModule(已弃用)
【发布时间】:2020-08-29 14:36:33
【问题描述】:

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

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

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

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,是否有工具/实用程序可用于简化此更新?

【问题讨论】:

  • 在一个地方尝试新的http,看看会发生什么;)

标签: angular express upgrade angular-services


【解决方案1】:

一口气升级5个主要版本并不容易。你最好关注更新后的guide

至于HttpModule,在v7.0之后被弃用并移除。升级到新的HttpClientModule 比尝试使删除的内容正常工作要容易得多。

【讨论】:

  • 感谢您的建议,但其中一个步骤是将 HttpClient 更改为我要询问的内容。我的应用程序正在运行,所以我相信我已经解决了大部分问题,除了这个“CORS”问题 - 请参阅更新
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    相关资源
    最近更新 更多