即使在使用正文解析中间件时获取空请求正文
我正在尝试实现我的这个小登录系统,并且我有一个表单向我的webpack dev服务器发送一个post请求,后者又将请求代理到我的服务器。
这是处理表单提交并向服务器发送POST请求的函数。
handleSubmit = (e) => {
e.preventDefault();
this.props.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
fetch('/login', {
method: 'POST',
body: values
});
}
});
}
当我单击Login时,我确实在控制台中记录了我的值,如
这是处理登录端点的服务器端代码
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/login', (req, res) => {
console.log('Got user information: \n', req.body);
res.send('asd');
})
app.use('/graphql', bodyParser.json(), graphqlExpress({ schema }));
app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' }));
app.listen(3001, () => {
console.log(`
=====
Server running at http://localhost:3001/
GraphiQL running at http://localhost:3001/graphiql/
=====
`)
})
正如你所看到的,我确实使用了body-parser中间件来解析req.body但是当我尝试登录正文时,我得到一个空对象
有人可以帮我弄清楚我的代码是怎么回事吗?
回答如下:请求将作为multipart / form-data发送到服务器。 body-parser不支持multipart / form-data。如果您确实要求POST请求采用这种格式,那么请查看multer或强大的内容。