NodeJS和Express:如何打印在GET和POST请求中传递的所有参数

时间:2014-08-19 21:52:54

标签: node.js express

我想记录传递给我的端点的所有查询参数。每当他们打电话给我时,即通过GET,POST。我能够打印所有GET查询参数,但与POST参数挣扎。

我使用 req.body ,但这不起作用它只打印 [对象] ,即使JSON.stringify没有帮助。

任何人都可以指向我正确的来源寻找它

1 个答案:

答案 0 :(得分:8)

因此POST参数到达HTTP请求主体,并由node.js作为数据块流处理。因此,您必须做的第一件事是确保将块流组合成一个完整的数据。然后你可能想要将其解析为url编码或JSON,如果它是什么。标准中间件为body-parser。你像在README中所说的那样设置它:

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

var app = express()

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

// parse application/json
app.use(bodyParser.json())

// parse application/vnd.api+json as json
app.use(bodyParser.json({ type: 'application/vnd.api+json' }))

app.use(function (req, res, next) {
  console.log(req.body) // populated!
  next()
})