使用angular2 app发送的Express.js接收POST数据

时间:2017-04-11 15:02:07

标签: node.js angular express

我在Node.js上有以下代码:

app.post('/register', function(req, res) {
  console.log(req.body);

但似乎req对象没有body属性。

使用angular2我发送字符串化JSON Content-Type:application / json

Angular代码如下所示:

this.http.post(
  "http://url.com",
  JSON.stringify(data_obj), {headers:{'Content-Type': 
  'application/json'}}).subscribe((res:Response) => this.extractData(res));

由于

2 个答案:

答案 0 :(得分:0)

NodeJS应用程序没有bodyParser,因此无法解析请求的正文。在NodeJS应用程序中执行此操作

安装正文解析器

npm install body-parser --save

添加到nodeJS应用

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

答案 1 :(得分:0)

您必须在应用中使用正文解析器中间件:

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

您可以使用以下命令安装它:npm install body-parser --save

例如,您可以将此代码写入主文件:

let bodyParser = require('body-parser')

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))

这是body解析器中间件的基本配置,它将POST参数解析为req.body。

如果您想了解更多关于身体解析器配置的信息,请将关联文档读入github仓库。