Metodo post en Angular 6

soy nuevo en esto, llevo varios intentos fallidos al enviar datos a un api mediante el método post en Angular, no se si m estoy equivocando al momento de implementar el metodo post, del app.component.ts que hay en el service. al momento realizar el formulario y enviar los datso me aparece un error de tipo 500 pero no sé qué está mal,y tambien me aparece que la propiedad name de usuario no esta definida mi código es el siguiente, de antemano muchas gracias

Detalles de error:

AppComponent.html:73 ERROR TypeError: Cannot read property 'name' of undefined     at Object.eval [as updateDirectives] (AppComponent.html:73)     at Object.debugUpdateDirectives [as updateDirectives] (core.js:11054)     at checkAndUpdateView (core.js:10451)     at callViewAction (core.js:10692)     at execComponentViewsAction (core.js:10634)     at checkAndUpdateView (core.js:10457)     at callWithDebugContext (core.js:11344)     at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.js:11022)     at ViewRef_.push../node_modules/@angular/core/fesm5/core.js.ViewRef_.detectChanges (core.js:8838)     at core.js:4571 

app.Component.ts

import { Component, OnInit } from '@angular/core'; import {ApirestService} from './apirest.service'; import { UsuarioInt} from './usuarioInt';  @Component({   selector: 'app-root',   templateUrl: './app.component.html',   styleUrls: ['./app.component.css'] }) export class AppComponent  {    public users:UsuarioInt [];   public user:UsuarioInt;    public IDuser:string= '';    constructor (private usersService: ApirestService){     }   ngOnInit(){     this.traerUsuarios();    }    traerUsuarios(){     this.usersService.getUsers().subscribe(dataUsrarios => {       if(dataUsrarios.code != 200){         console.log(dataUsrarios);       }else{         this.users = dataUsrarios.data;       }       }, error => {         console.log(<any>error);       }     );   }    traerUsuario(){     this.usersService.getUser(this.IDuser).subscribe(user => {         this.user= user.data;         console.log( this.user);      }, error =>{       console.log(<any>error)     }     );   }    nuevoUsuario(){     this.usersService.addUser(this.user).subscribe(       (newUser) => {         newUser.data = this.user;         console.log(newUser);       });     this.traerUsuarios();      }   } 

service.ts:

import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http' import { UsuarioInt } from './usuarioInt';   import { Observable } from 'rxjs';  const httpOptions = {   headers: new HttpHeaders({     'Content-Type':  'application/json',     'authorization': '750e8b43e5ed564462c90ef0d382db26'   }) };  @Injectable({   providedIn: 'root' })  export class ApirestService {    private urlback = 'http://localhost/sarayback/persons/';    constructor(private http: HttpClient) {     }   getUsers():Observable<any>{     return this.http.get<UsuarioInt>(this.urlback, httpOptions);    }   getUser(id: string):Observable<any>{     return this.http.get<UsuarioInt>(`$  {this.urlback}/$  {id}`, httpOptions);   }    addUser(usuarioInt: UsuarioInt):Observable<any>{     let json = JSON.stringify(usuarioInt);     let params = "json="+json;     return this.http.post( this.urlback, params, httpOptions);    } } 

mi archivo html

tengo un problema al querer guardar los datos del formulario en la base de datos. Tengo la API, la interface. Pero no se si esta bien implementado el formulario

<div>    <h1> Register </h1>   <div>     <form >       <fieldset class="form-group">         <label>First Name</label>         <input type="text" class="form-control" [(ngModel)]="user.name"           [ngModelOptions]="{standalone: true}" placeholder="First Name" required>       </fieldset>        <fieldset class="form-group">         <label>Last Name</label>         <input type="text" class="form-control" aria-describedby="Last Name" [(ngModel)]="user.lastName"           [ngModelOptions]="{standalone: true}" placeholder="Last Name" required>       </fieldset>       <div class="form-group">         <label>Phone</label>         <input type="number" class="form-control" aria-describedby="phone" placeholder="Number phone"           [(ngModel)]="user.phone" [ngModelOptions]="{standalone: true}" required>       </div>       <div class="form-group">         <label>Email address</label>         <input type="email" class="form-control" aria-describedby="emailHelp" placeholder="Enter email"           [(ngModel)]="user.email" [ngModelOptions]="{standalone: true}" required>         <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>       </div>        <button class="btn btn-primary" type="submit"  (click)="nuevoUsuario()">Submit</button>     </form>    </div>  </div>