我有一个端点,可以在 URL 或消息正文中接受 json(当然是 POST)
app.post('/book/addBooks', function (req, res) {
...
我知道来自服务器的新书 JSON 将是一个查询参数
<server>/book/addBooks?books=[{...},{...}]
或者来自 body
<server>/book/addBooks
正文:
books=[{...},{...}]
基本上我正在检查两者:
req.body.books
或
req.query.books
并选择第一个有内容的。有没有更好的方法来快速获取“书籍”?
旁注:在你丢弃可以传入 url 或 body 的事实之前,我正在编写一个模仿另一个 API 的服务,因为另一个 API 也允许这种垃圾,我也必须这么做。
最佳答案
来自 Express 文档
req.param(name)
Return the value of param name when present.
// ?name=tobi req.param('name') // => "tobi"
// POST name=tobi req.param('name') // => "tobi"
// /user/tobi for /user/:name req.param('name') // => "tobi"
这是查找顺序:
Lookup is performed in the following order:
req.params req.body req.query
关于node.js - 快速解析正文或查询参数中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15535759/