Angular 4和Nodejs http发布请求实现错误

时间:2017-09-26 00:58:55

标签: javascript node.js angular typescript

我使用 Angular 4 Nodejs 创建了小型测试应用程序。我想将一个文本字段值插入数据库Mongo或mysql 以下文件我创建 server.js 以运行 nodejs ,创建服务器>路由器文件夹,其他文件 api.js 和Angular 4 用户组件已创建。 我做了什么代码如下所示

user.component.html

<form (submit)="addHobby(hobbies,hobby.value)">
  <input type="text" #hobby>
  <input type="submit" value="Submit">
</form>

user.component.ts

addHobby(arrHob,hobby) {
    if(arrHob.indexOf(hobby) == -1) {
      this.hobbies.unshift(hobby);
      this.dataService.postHobby(hobby).subscribe((posts) => {
        console.log(posts);
      })
    }
    return false;
  }

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

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

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

router.post('/insertHobby', (req, res) => {
    console.log("Welcome to post method");
    console.log(req.body.data);
})

表单提交时我只输出欢迎发布方法

req.body.data我得到*'Undefined'*如何解决此问题。感谢所有人..

1 个答案:

答案 0 :(得分:1)

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

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