Javascript Angular 4和Nodejs http post请求实现错误

Javascript Angular 4和Nodejs http post请求实现错误,javascript,node.js,angular,typescript,Javascript,Node.js,Angular,Typescript,我使用angular4和Nodejs创建了小型测试应用程序。我想在数据库Mongo或mysql中插入一个文本字段值。 下面是我为运行nodejs创建的server.js文件,创建了服务器>路由器文件夹,并创建了另一个文件api.js和Angular 4用户组件。 我所做的代码如下所示 user.component.html 服务文件夹包含data.service.ts 服务器路由器文件夹包含api.js 当提交表单时,我得到的输出是唯一欢迎使用post方法的输出 我得到的req.body.dat

我使用angular4Nodejs创建了小型测试应用程序。我想在数据库Mongo或mysql中插入一个文本字段值。
下面是我为运行nodejs创建的server.js文件,创建了服务器>路由器文件夹,并创建了另一个文件api.js和Angular 4用户组件。 我所做的代码如下所示

user.component.html

服务文件夹包含data.service.ts

服务器路由器文件夹包含api.js

当提交表单时,我得到的输出是唯一欢迎使用post方法的输出


我得到的req.body.data是
*'Undefined'*
如何解决这个问题。无论如何,感谢大家。

由于您没有将变量作为对象传递,因此需要以如下对象格式传递它:

postHobby(hobby) {
return this.http.post('/api/insertHobby',{hobby: hobby}).map(res => res.json().data);
}

什么是“爱好”?是物体吗,如果没有像{hobby}一样在正文中传递它,“hobby”是文本字段值。我通过了对象格式,但没有得到结果。对不起,输入错误应该是{hobby:hobby}好的,我得到了结果。我将api.js重新编写为console.log(req.body.hobby);ThanksI会给出这个答案,请接受答案这里我只有一个文本字段,如果我有超过10个字段,我只能通过这种格式?是的,因此首选的方法是将其作为JSON对象传递。
addHobby(arrHob,hobby) {
    if(arrHob.indexOf(hobby) == -1) {
      this.hobbies.unshift(hobby);
      this.dataService.postHobby(hobby).subscribe((posts) => {
        console.log(posts);
      })
    }
    return false;
  }
postHobby(hobby) {
    return this.http.post('/api/insertHobby',hobby).map(res => res.json().data);
  }
router.post('/insertHobby', (req, res) => {
    console.log("Welcome to post method");
    console.log(req.body.data);
})
postHobby(hobby) {
return this.http.post('/api/insertHobby',{hobby: hobby}).map(res => res.json().data);
}