Доступ к файлам в POST в NUXT3 API
Я пытаюсь понять, как ожидается доступ к данным файла в методе POST.
В ExpressJS эти данные обычно доступны через
Однако
Редактировать 1:
Я смог напечатать наше тело, используя
const body = await useBody(req);
Однако теперь я изо всех сил пытаюсь понять, как правильно его разобрать.
3 ответа
ИспользоватьreadBody
.
export default defineEventHandler(async (event) =>
const body = await readBody(event)
return { body }
})
Примечание:useBody
не рекомендуется заменять на readBody.
Я боролся с той же проблемой и закончил сformidable
.
Мой рабочий файл поста выглядит так:
import formidable from "formidable";
export default defineEventHandler(async (event) => {
const form = formidable({ multiples: true });
await new Promise((resolve, reject) => {
form.parse(event.node.req, (err, fields, files) => {
Object.keys(files).map((fileName) => {
// do something with file
})
resolve();
});
});
})
Обещание необходимо, чтобы загрузка нескольких файлов работала правильно. См. https://github.com/unjs/h3/issues/43#issuecomment-1069225214 .
Вы можете разобрать полученные предметы:
import { useBody } from 'h3'
const body = await useBody(req);
const { files } = body;