节点 - 显示未定义的发布请求

时间:2016-09-08 20:48:01

标签: javascript angularjs node.js angular

我正在制作angular2 / Node.js应用程序。现在当我尝试从节点服务器获取一个对象时,它返回就好了。但是,当我尝试将数据发布到节点服务器时。 request.body显示未定义。我究竟做错了什么 ?

server.js

// Test
router.get('/test', function (req, res) {
    res.json({test:true}); // Works 
});

// Post
router.post('/rest', function (req, res) {
    var body = req.body;
    console.log(body); // Undefined 
    res.json({test:true});
});

app.ts

constructor(private http:Http){
    console.log("Test")
    http.get('/api/User/test').subscribe(result => {
        console.log(result.json());
    });
    let headers = new Headers({ 'Content-Type': 'application/json' });
    this.http.post('/api/User/rest',{test:'Testing req'},{headers:headers})
    .subscribe(result => {
        console.log(result.json());
    });  
}

1 个答案:

答案 0 :(得分:1)

你安装了body-parser吗?

npm install body-parser --save

在您的路线之前,将其添加到您的快速申请

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

另见:https://github.com/expressjs/body-parser