I am creating a CRUD service with Angular, Nest Js, and MongoDB.
When I send FormData from Angular(frontend) to Nest Js(backend) but FormData is empty.
Why doesn't FormData send any data?
>>> image Angular console <<<
>>> Angular file
project.service.ts
interface Form {
nameForm:string;
detailForm:string
}
@Injectable({
providedIn: 'root'
})
export class ProjectService {
REST_API:string = 'http://localhost:3000/api';
constructor(private http:HttpClient) { }
createProject(projectForm:Form){
const projectData = new FormData();
projectData.append('name',projectForm.nameForm)
projectData.append('detail',projectForm.detailForm)
// FormData has name and detail data.
projectData.forEach((value,key) => {
console.log(key+" "+value)
});
let API_URL = `${this.REST_API}/projects`
this.http.post(API_URL,projectData).subscribe()
}
}
>>> Nest js file
projects.controller.ts
@Controller('projects')
export class ProjectsController {
constructor(private readonly projectsService: ProjectsService) {}
@Post()
create(@Body() createProjectDto: CreateProjectDto) {
console.log('in controller',createProjectDto)
return this.projectsService.create(createProjectDto);
}
}
create-project.dto.ts
export class CreateProjectDto {
name:string;
detail:string
}
projects.service.ts
@Injectable()
export class ProjectsService {
constructor(@InjectModel(Project.name) private projectModel:Model<ProjectDocument>) {}
create(createProjectDto: CreateProjectDto) {
const createdProject = new this.projectModel(createProjectDto)
return createdProject.save()
}
}