IT이야기

'@ angular / common / http'모듈을 찾을 수 없습니다.

cyworld 2021. 4. 28. 20:33
반응형

'@ angular / common / http'모듈을 찾을 수 없습니다.


나는 다음과 같은 오전 의 HTTP에 대한 각도에 기본적인 튜토리얼.

"설정 : 모듈 설치"섹션에서 볼 수 있듯이 다음과 같이 HttpClientModule을 가져옵니다.

import {HttpClientModule} from '@angular/common/http';

내 프로젝트에서이 작업을 시도하면 " '@ angular / common / http'모듈을 찾을 수 없습니다."라는 오류가 발생합니다.

다음과 같이 다음 모듈 가져 오기를 시도했습니다.

import { HttpModule } from '@angular/http';

그리고 내 수입 섹션 :

imports: [
    HttpModule
],

이제 문제는이 HttpModule을 내 서비스 개체에 삽입 할 수없고 "Cannot find module HttpModule"오류가 발생한다는 것입니다.

내 서비스 클래스는 다음과 같습니다.

import { Injectable, OnInit } from '@angular/core';
//Custom Models
import { Feed } from '../Models/Feed';

@Injectable()
export class FeedsService {
    constructor(private httpClient: HttpModule) {}
}

내가 도대체 ​​뭘 잘못하고있는 겁니까?

업데이트 내가 튜토리얼에 따라 모듈을 가져올 수 깨달았을 때 내가 한 짓을한다, 실행하는 것이었다 npm update내 모든 패키지를 업데이트, 명령을.


중요 : HttpClientModuleAngular 4.3.0 이상용입니다. 자세한 내용은 @Maximus의 의견과 @Pengyy의 답변 을 확인하십시오.


원래 답변 :

HttpClient모듈이 아닌 컴포넌트 / 서비스 에 삽입해야 합니다. 수입 HttpClientModule하는 경우@NgModule

// app.module.ts:

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';

// Import HttpClientModule from @angular/common/http
import {HttpClientModule} from '@angular/common/http';

@NgModule({
  imports: [
    BrowserModule,
    // Include it under 'imports' in your application module
    // after BrowserModule.
    HttpClientModule,
  ],
})
export class MyAppModule {}

그래서 변경

constructor(private httpClient: HttpModule) {}

...에

constructor(private httpClient: HttpClient) {}

문서에 쓰여진대로 : https://angular.io/guide/http#making-a-request-for-json-data


그러나 HttpModule을 가져 왔기 때문에

당신은 주입 할 필요 constructor(private httpClient: Http)@Maximus 의견과에 명시된 @Pengyy 에서 이 답변 .

그리고 차이에 대한 추가 정보를 원하시면 HttpModuleHttpClientModule:이 답변 확인 https://stackoverflow.com/a/45129865/5706293을


중요 업데이트 :

HttpModuleHttp에서가 @angular/http각도 V5부터 사용되지 않습니다 , 사용하는해야 HttpClientModule하고 HttpClient에서 @angular/common/http대신 참조 CHANGELOG을 .


각도 버전에 대한 내용은 **@4.3.0에서 이전 , 당신은 주입해야 Http로부터 @angular/http, 그리고 HttpModule당신의 NgModule의 수입 배열에 가져 오기위한 것입니다.

import {HttpModule} from '@angular/http';

@NgModule({
  ...
  imports: [HttpModule]
})

http구성품 또는 서비스에 주입

import { Http } from '@angular/http';

constructor(private http: Http) {}

각도 버전 (포함) 후 4.3.0 , 당신은 사용할 수 있습니다 HttpClient에서 @angular/common/http대신 Http에서 @angular/http. 먼저의 가져 오기 배열 HttpClientModule에서 가져 오는 것을 잊지 마십시오 NgModule.

@echonax의 답변을 참조하십시오.


참고 : 이것은 @ angular / common / http가 아닌 @ angular / http 용입니다!

이런 식으로 가져 오기만하면 완벽하게 작동합니다.

// Import HttpModule from @angular/http
import {HttpModule} from '@angular/http';


@NgModule({
  declarations: [
    MyApp,
    HelloIonicPage,
    ItemDetailsPage,
    ListPage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp),
  ],
  bootstrap: [...],
  entryComponents: [...],
  providers: [... ]
})

그런 다음 service.ts에서 다음과 같이 구성합니다.

constructor(private http: Http) { }

getmyClass(): Promise<myClass[]> {
  return this.http.get(URL)
             .toPromise()
             .then(response => response.json().data as myClass[])
             .catch(this.handleError);
}

나는 문제였던 각도 5에서 http를 사용하고 있었다. Httpclient를 사용하여 문제가 해결되었습니다.


자동 수입에주의하십시오. 내 HTTP_INTERCEPTORS는 다음과 같이 자동으로 가져 왔습니다.

import { HTTP_INTERCEPTORS } from '@angular/common/http/src/interceptor';

대신에

import { HTTP_INTERCEPTORS } from '@angular/common/http';

이 오류를 일으킨


당신은 가져와야 http에서 @angular/http서비스에 :

import {Http} from '@angular/http';

constructor(private http: http) {} // <--Then Inject it here


// now you can use it in any function eg:
getUsers() {
    return this.http.get('whateverURL');
}

Ionic 3 및 Angular 5를 사용하는 모든 사람에게 동일한 오류 팝업이 표시되었으며 여기에서 해결책을 찾지 못했습니다. 하지만 저에게 도움이되는 몇 가지 단계를 찾았습니다.

재현 단계 :

  • npm install -g cordova ionic
  • 이온 시작 myApp 탭
  • cd myApp
  • cd node_modules / angular / common (http 모듈이 없음).

ionic :( 터미널 / cmd 프롬프트에서 ionic info 실행) 버전을 확인하고 최신 버전인지 확인하십시오. 프로젝트의 package.json 폴더에서 각도 버전과 패키지를 확인할 수도 있습니다.

내 종속성과 패키지를 확인하고 Cordova를 설치했습니다. 원자를 다시 시작하고 오류가 사라졌습니다. 도움이 되었기를 바랍니다!


이것을 참조하십시오 : http : @ angular / common / http 대신 @ angular / http를 사용하지 마십시오.


이 문제가 해결 되었습니까?

이 오류가 발생합니다 : ERROR in node_modules / ngx-restangular / lib / ngx-restangular-http.d.ts (3,27) : error TS2307 : Cannot find module '@ angular / common / http / src / response'.

내 각도를 version = 8로 업데이트 한 후

참조 URL : https://stackoverflow.com/questions/45207615/cannot-find-the-angular-common-http-module

반응형