简体   繁体   English

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

[英]Angular 4 and Nodejs http post request implementation error

I created small test application using Angular 4 and Nodejs . 我使用Angular 4Nodejs创建了小型测试应用程序。 I want to insert a text field value to the database either Mongo or mysql. 我想将文本字段值插入数据库Mongo或mysql。
Following files I created server.js for running nodejs , Created server>router folder with another file api.js and Angular 4 user component created. 在我创建用于运行nodejs的 server.js文件之后,创建了server> router文件夹,并创建了另一个文件api.js和Angular 4 用户组件 What i did code shown below 我所做的代码如下所示

user.component.html user.component.html

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

user.component.ts 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;
  }

Services folder contain data.service.ts 服务文件夹包含data.service.ts

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

server router folder contain api.js 服务器路由器文件夹包含api.js

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

When form submitting i'm getting output as only welcome to post method 提交表单时,我只接受发布方法的输出

req.body.data i'm getting as *'Undefined'* How to resolve this issue. req.body.data我得到*'Undefined'*如何解决此问题。 Any way thanks to everyone.. 谢谢大家。

since you are not passing the variable as object , you need to pass it in object format as below : 由于您没有将变量作为对象传递,因此需要按以下对象格式传递它:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM