error - No se puede encontrar el módulo ''@ angular/common/http''
no se encuentra el módulo ''@ angular platform browser (9)
Estoy siguiendo this tutorial fundamental en Angular sobre Http.
Como se puede ver en la sección "Configuración: Instalación del módulo", importan el HttpClientModule de la siguiente manera:
import {HttpClientModule} from ''@angular/common/http'';
Cuando intento esto en mi proyecto, aparece el siguiente error: "No se puede encontrar el módulo ''@ angular / common / http''".
He intentado importar el siguiente módulo, de la siguiente manera:
import { HttpModule } from ''@angular/http'';
Y luego mi sección de importaciones:
imports: [
HttpModule
],
El problema ahora es que no puedo inyectar este HttpModule en mi objeto de servicio y aparece el siguiente error: "No se puede encontrar el módulo HttpModule".
Aquí está mi clase de servicio:
import { Injectable, OnInit } from ''@angular/core'';
//Custom Models
import { Feed } from ''../Models/Feed'';
@Injectable()
export class FeedsService {
constructor(private httpClient: HttpModule) {}
}
¿Qué estoy haciendo mal?
Actualizar
Todo lo que debería haber hecho cuando me di cuenta de que no podía importar el módulo según el tutorial, era ejecutar el comando
npm update
, para actualizar todos mis paquetes.
nota: ¡Esto es para @ angular / http, no para el @ angular / common / http solicitado!
Solo importa de esta manera, FUNCIONA perfectamente:
// 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: [... ]
})
y luego construyes en el servicio.
constructor(private http: Http) { }
getmyClass(): Promise<myClass[]> {
return this.http.get(URL)
.toPromise()
.then(response => response.json().data as myClass[])
.catch(this.handleError);
}
¿Se resolvió este problema?
Recibo este error: ERROR en node_modules / ngx-restangular / lib / ngx-restangular-http.d.ts (3,27): error TS2307: No se puede encontrar el módulo ''@ angular / common / http / src / response''.
Después de actualizar mi angular a la versión = 8
Consulte esto: http: deprecate @ angular / http a favor de @ angular / common / http.
Cuidado con las importaciones de automóviles. mi HTTP_INTERCEPTORS se importó automáticamente de esta manera:
import { HTTP_INTERCEPTORS } from ''@angular/common/http/src/interceptor'';
en vez de
import { HTTP_INTERCEPTORS } from ''@angular/common/http'';
que causó este error
Debe importar
http
desde
@angular/http
en su servicio:
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'');
}
Estaba usando http en angular 5 que era un problema. El uso de Httpclient resolvió el problema.
Para cualquiera que use Ionic 3 y Angular 5, tuve el mismo error emergente y no encontré ninguna solución aquí. Pero encontré algunos pasos que me funcionaron.
Pasos para reproducir:
- npm install -g cordova ionic
- pestañas de inicio iónico myApp
- cd myApp
- cd node_modules / angular / common (no existe un módulo http).
iónico: (ejecute información iónica desde un indicador de terminal / cmd), verifique las versiones y asegúrese de que estén actualizadas. También puede verificar las versiones angulares y los paquetes en la carpeta package.json de su proyecto.
Revisé mis dependencias y paquetes e instalé cordova. Reinició el átomo y el error desapareció. ¡Espero que esto ayude!
Actualización importante:
HttpModule
y
Http
de
@angular/http
han quedado en
desuso desde Angular V5
, en lugar de utilizar
HttpClientModule
y
HttpClient
de
@angular/common/http
, consulte
CHANGELOG
.
Para la versión angular
anterior de **@4.3.0
, debe inyectar
Http
desde
@angular/http
, y
HttpModule
es para importar en la matriz de importación de su NgModule.
import {HttpModule} from ''@angular/http'';
@NgModule({
...
imports: [HttpModule]
})
Inyectar
http
en el componente o servicio
import { Http } from ''@angular/http'';
constructor(private http: Http) {}
Para la versión angular
después de (incluir) 4.3.0
, puede usar
HttpClient
desde
@angular/common/http
lugar de
Http
desde
@angular/http
.
No olvide importar
HttpClientModule
en la matriz de importación de su
NgModule
primero.
Consulte la respuesta de @echonax.
Importante
:
HttpClientModule
es para Angular 4.3.0 y superior.
Consulte
@Maximus''
comentarios de
@Pengyy''s
answer
@Pengyy''s
para obtener más información.
HttpClient
inyectar
HttpClient
en su componente / servicio, no en el módulo.
Si importa
HttpClientModule
en su
@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 {}
Entonces cambia
constructor(private httpClient: HttpModule) {}
a
constructor(private httpClient: HttpClient) {}
como está escrito en la documentación: https://angular.io/guide/http#making-a-request-for-json-data
Sin embargo, desde que importó el HttpModule
necesita inyectar
constructor(private httpClient: Http)
como
@Maximus''
declaró en los comentarios y
@Pengyy''s
en
answer
.
Y para obtener más información sobre las diferencias entre
HttpModule
y
HttpClientModule
, consulte esta respuesta:
https://.com/a/45129865/5706293