尝试发送简单的帖子请求,body
属性为空对象{}
。谁知道为什么?
const compression = require('compression')
const bodyParser = require('body-parser')
const express = require('express')
const app = express()
app.set('port', process.env.PORT)
// Support JSON-encoded and encoded bodies.
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.post('/api/' + APIVersion.latest() + '/post-job', (req, res) => {
console.log(req.body)
res.json({ hey: 'hey' })
})
// Start the server.
app.listen(app.get('port'), err => {
if (err) {
return console.log('There was an error', err)
}
console.log(`Server running on port ${app.get('port')}`)
})
答案 0 :(得分:3)
req.params
为空,因为您的路线没有指定任何。
在Express
中,params
指的是路由/网址参数。例如,如果您想要一条允许您动态指定用户姓氏的路线,您可以这样做:
app.get('/users/:last/info', (req, res) => {
// ....
})
这会为路线提供last
的参数,可由req.params.last
访问。
答案 1 :(得分:0)
req.params
保留route params,例如/users/:id
:
GET /users/123
req.params.id = 123
如果您要求req.query
,则需要访问/api/v1/post-job?test=value
,或者如果您发布任何内容,则需要访问正文。
答案 2 :(得分:0)
如果没有填充req.body,您需要检查发送POST请求的方式,因为req.body与URL完全分开。如果它是HTML格式:
<form action="/person" method="POST">
<input name="firstName" type="text">
<button>Submit</button>
</form>
如果您通过其他途径发送请求,则必须查看该API的文档。