Expressparsing正文或查询参数中的内容

我有一个端点接受JSON在URL或邮件正文(当然POST)

app.post('/book/addBooks', function (req, res) { ... 

我知道来自服务器的新书JSON要么是查询参数

 <server>/book/addBooks?books=[{...},{...}] 

或从身体

 <server>/book/addBooks 

身体:

 books=[{...},{...}] 

基本上我正在检查两个:

 req.body.books 

要么

 req.query.books 

并select第一个有内容。 有没有更好的方式来expression“书籍”?

附注:在垃圾之前,你可以通过URL或身体的事实,我正在写一个模仿另一个API的服务,因为其他API允许这个垃圾,我也必须。

从快递文档

req.param(名称)

出现时返回参数名称的值。

//?name = tobi req.param('name')// =>“tobi”

// POST name = tobi req.param('name')// =>“tobi”

// / user / tobi / user /:name req.param('name')// =>“tobi”

这里是查找顺序:

查找按以下顺序执行:

 req.params req.body req.query 

大小写使用req.params:何时是一个rest值的例子

 /users/:id 

req.body:为方法post发送数据时req.query:方法get数据发送时的例子

  /users?thisIsaVar=thisIsaValue 

好的,expressjs post方法是body