【发布时间】:2019-02-17 00:10:52
【问题描述】:
我有一个接受名称并给出 422 验证错误的 Node.js API。
// Express is setup with bodyParser:
const bodyParser = require('body-parser');
const app = express()
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.use(express.static('files'))
...
// API:
app.post('/test',
[
body('name').exists(),
],
async (req, res, next) => {
try{
const errors = validationResult(req);
if(!errors.isEmpty()){
return res.status(422).json({ errors: errors.array() });
}
return res.status(200).send('Your name is ' + req.body.name);
}catch(error){
return res.status(422).json({ errors: errors.array() });
}
}
我通过 Axios 访问它:
const rb = {
name : 'John',
}
const config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
params: {
name : 'John'
}
}
axios.post(url, rb, config)
.then((result) => {
callback('Success', result);
})
.catch((err) => {
callback('Oops!', err);
});
我正在返回第一个 422,我的“名称”参数没有被 Node.js 解析。它不在 req.body 中
我是否通过 Axios 发送了错误的请求?它适用于邮递员。
【问题讨论】: