Как bodyparser и multer работают вместе в Express? - PullRequest
1 голос
/ 27 марта 2020

Предположим, я отправляю файл, который содержит как строковые поля, так и прикрепленное изображение. Вот как я делаю это во внешнем интерфейсе:

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 и что игнорировать, потому что это файл?

...