使用Restify解析url编码的正文

时间:2014-01-03 10:16:22

标签: node.js httprequest restify

我无法使用restify对我的node.js API进行网址编码。我有以下设置我的restify应用程序:

app.use(restify.acceptParser(app.acceptable));                                  
app.use(restify.queryParser());                                                 
app.use(restify.urlEncodedBodyParser());

但是,当我使用curl请求我的应用程序时,请求:

curl -X POST -H "Content-type: application/x-www-form-urlencoded" -d quantity=50 http://app:5000/feeds

我在视图中得到以下输入正文:

console.log(req.body)  // "quantity=50"

提前致谢,

的Mattias

1 个答案:

答案 0 :(得分:13)

Restify的默认设置将解析后的参数放在req.params中。这是由queryParser和不同的bodyParser中间件完成的。

因此,要访问quantity参数,请使用req.params.quantity

如果您确实想要使用req.body,则需要将mapParams : false传递给bodyParser构造函数:

app.use(restify.urlEncodedBodyParser({ mapParams : false }));

现在req.body将包含已解析的参数。