Reputation: 245
I am at a complete loss on why I am getting this error. I have spent 10 plus hours looking at angular tutorials and stack overflow questions. Everything in my head says its something small but i am almost at a breaking point. please guide me in the right direction.
app.module.ts
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { UploadComponent } from './upload/upload.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';
@NgModule({
declarations: [
AppComponent,
UploadComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpClientModule,
HttpClient
],
providers: [],
bootstrap: [AppComponent, UploadComponent]
})
export class AppModule { }
uploadcomponent.ts
import { FormBuilder, ReactiveFormsModule, FormGroup, FormControl } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';
@Component({
selector: 'app-upload',
templateUrl: './upload.component.html',
styleUrls: ['./upload.component.scss']
})
export class UploadComponent implements OnInit {
SERVER_URL = 'http://localhost:3000/upload';
uploadForm: FormGroup;
constructor(private formBuilder: FormBuilder, private httpClient: HttpClient) { }
ngOnInit() {
this.uploadForm = this.formBuilder.group({
profile: ['']
});
}
onFileSelect(event) {
if (event.target.files.length > 0) {
const file = event.target.files[0];
this.uploadForm.get('profile').setValue(file);
}
}
onSubmit() {
const formData = new FormData();
formData.append('file', this.uploadForm.get('profile').value);
this.httpClient.post<any>(this.SERVER_URL, formData).subscribe(
(res) => console.log(res),
(err) => console.log(err)
);
}
}
uploadcomponent.html
<form [formGroup] = "uploadForm" (ngSubmit)="onSubmit()">
<div>
<input type="file" name="profile" (change)="onFileSelect($event)" />
</div>
<div>
<button type="submit">Upload</button>
</div>
</form>
</div>```
Upvotes: 2
Views: 604
Reputation: 222582
You already have HttpClientModule which is required, you need to remove HttpClient under imports,
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpClientModule,
HttpClient // remove this
]
Upvotes: 3