角发布请求将空主体发送到node.js服务器

时间:2020-05-30 07:31:17

标签: javascript node.js angular http

我正在尝试将表单数据从angular发布到node.js。角度发布请求发送一个空的正文。 这是我的路由器 提交功能是ts文件

  onSubmit( loginData ) {
if(!loginData) { return; }
this.userService.addUser( loginData as User  )
  .subscribe(user => {
    this.users.push(user);
  });

用于发布数据的服务

   addUser(user: User): Observable<User> {
    // console.log('this is '+user.email);
    const url = `${this.usersUrl}/register`;
    return this.http.post<User>(url, user).pipe(
      tap((newUser: User) => this.log(`added user w/ email=${newUser.email}`)),
      catchError(this.handleError<User>('addUser'))
    );
  }

2 个答案:

答案 0 :(得分:0)

请通过添加调试检查一次,是否已在服务中传递loginData。 如果您不知道如何添加调试点,只需使用console.log(user)打印数据 在方法addUser()中作为第一行。

如果没有获取数据,则只需通过以下方法修改方法调用:

this.userService.addUser(loginData).subscribe(user => {
  this.users.push(user);
    });

答案 1 :(得分:0)

我发现了问题所在。 这个角度代码没有问题。 我还按照David的建议检查了“网络”选项卡,并看到正在发送有效负载。 问题是我的node.js服务器中的这一行代码

app.use(express.static('public'))

相反,我不得不使用

app.use(exrpess.json())

我已经从另一个应用程序复制了模板,但以某种方式错过了它。无论如何,谢谢您的帮助!