У меня есть служба Angular, которая успешно размещена в Firebase и Postgres через промежуточное ПО PHP под названием DreamFactory.Приложение Angular работает.Проблема в контроллере Nestjs @Post () или службе add () ниже.Я хочу опубликовать объект json с именем recordData.Я получаю пустой объект вместо моих данных JSON, что правильно в службе Angular.Результаты сервера console.log:
recordData in controller: {}
req: {}
recordData in service: {}
Прокси-сервер Angular CORS работает в терминале Angular Dev:
[HPM] POST /api/members -> http://localhost:3000
Angular использует порт сервера dev 4200, Nestjs на 3000Типичная настройка разработки.
Что не так?Полезная нагрузка не поступает в контроллер.Я новичок в серверном кодировании.
Угловой http.service.ts:
private api = '/api/';
...
public addRecord(dbTable: string, recordData): Observable<any> {
return this.http
.post(`${this.api}${dbTable}`, recordData);
// For this example I'm posting to localhost:3000/api/members db table.
}
Мои члены Контроллер Nest.@ Получите работает, @Post нет.
@Controller('api/members') // /members route
export class MembersController {
constructor(private readonly membersService: MembersService) {}
@Get()
async findAll(): Promise<Members[]> {
return await this.membersService.findAll();
}
@Post()
async addItem(@Req() req, @Body() recordData: AddMemberDto) {
console.log('recordData in controller: ', recordData);
console.log('req: ', req.body);
const result: Members = await this.membersService.addItem(recordData);
if (!result)
throw new HttpException('Error adding new Member', HttpStatus.BAD_REQUEST);
return result;
}