首页 > 解决方案 > 在 Express 中 bodyparser 和 multer 如何协同工作?

问题描述

假设我发送了一个包含字符串字段和附加文件图像的文件。这就是我在前端的做法:

const formData = new FormData();
formData.append('title', postData.title);
formData.append('content', postData.content);
formData.append('image', postData.image);

这是我在 Express 中的中间件配置:

app.use(bodyParser.json());
app.use(
    multer({ storage: fileStorage, fileFilter }).single('image')
);
app.use('/images', express.static(path.join(__dirname, 'images')));
app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
});

那么,究竟是谁在解析字符串字段呢?如果我将 JSON 对象附加到 FormData,bodyparser.json() 将如何知道在哪里可以找到 JSON 数据以及忽略什么,因为它是一个文件?

标签: node.jsreactjsexpressmulterbody-parser

解决方案


推荐阅读